我试图在VB.NET中复制此VBA代码
它给出了这个结果
我怎么能在VB.NET中用一行代码做到这一点?(我已经知道用迭代和数组来做这件事)非常感谢所有会回复的人!
j2datikz1#
首先,不要尝试复制VBA代码。这是不好的,会给你带来问题-有人使用了一个不合格的范围,所以没有告诉什么数据,你正在做的,以获得从。对于VB.NET中的一行程序,您可以使用Object类型Cast范围数组并调用ToArray()方法-请记住,您需要首先将范围DirectCast到2D Object数组以访问Cast方法。类似这样的东西(使用限定范围):
Object
Cast
ToArray()
DirectCast
Dim a = DirectCast(ws.Range("A1:C1").Value, Object(,)).Cast(Of Object).ToArray()
在VBA中,如果只有一个单元格被定义在范围内(例如“A1”),那么值类型是一个变量,而不是一个变量数组,所以任何试图引用它作为一个数组将抛出错误。如果您只引用一个单元格,则在此VB代码中也会发生相同的情况。
1条答案
按热度按时间j2datikz1#
首先,不要尝试复制VBA代码。这是不好的,会给你带来问题-有人使用了一个不合格的范围,所以没有告诉什么数据,你正在做的,以获得从。
对于VB.NET中的一行程序,您可以使用
Object
类型Cast
范围数组并调用ToArray()
方法-请记住,您需要首先将范围DirectCast
到2DObject
数组以访问Cast
方法。类似这样的东西(使用限定范围):在VBA中,如果只有一个单元格被定义在范围内(例如“A1”),那么值类型是一个变量,而不是一个变量数组,所以任何试图引用它作为一个数组将抛出错误。如果您只引用一个单元格,则在此VB代码中也会发生相同的情况。