VB.NET 一行代码创建 Excel 单元格值数组

VB.NET one line code to create array of Excel cell values

提问人:sickboy 提问时间:5/26/2023 更新时间:5/27/2023 访问量:57

问:

我正在尝试在 VB.NET 中复制此VBA代码

enter image description here

这给出了这个结果

enter image description here

如何在 VB.NET 中使用一行代码来做到这一点?

(我已经知道用迭代和数组来做到这一点)

非常感谢所有回复的人!

数组 Excel vb.net 单元格 单行

评论

0赞 Andrew Morton 5/27/2023
虽然我不推荐它,因为它的可读性不高,但你可以通过用冒号分隔它们来将多个语句放在一行上,例如,.因此,您可以使用您已经知道的方法。For i = 1 To 10 : Console.WriteLine(i) : Next

答:

1赞 Ambie 5/27/2023 #1

首先,不要尝试重现该VBA代码。这很糟糕,会给你带来问题 - 有人使用了不合格的范围,所以不知道你正在做什么数据来从中得到。

对于 VB.Net 中的单行代码,您可以只使用类型范围数组并调用该方法 - 请记住,您需要先将范围转换为 2D 数组才能访问该方法。像这样的东西(使用限定范围):CastObjectToArray()DirectCastObjectCast

Dim a = DirectCast(ws.Range("A1:C1").Value, Object(,)).Cast(Of Object).ToArray()

enter image description here

在 VBA 中,如果在范围中只定义了一个单元格(例如“A1”),则值类型是 Variant 而不是 Variant 数组,因此任何将其引用为数组的尝试都会引发错误。如果仅引用一个单元格,则在此 VB 代码中也会发生相同的情况。