vba - 范围没有被复制到数组中

标签 vba excel

Sub Driver()

'Highlights driver who have 1 point

Dim driverData  ' array variable to hold driver names

driverData = Range("C2:C391").Value

ReDim driverData(390)

MsgBox driverData(3)

尽管 Range("C2:C391") 在工作表中有值,但数组似乎只有 空白

因此,使用 MsgBox 命令,只有 空白 出现

最佳答案

当您只使用 ReDim 时你破坏了数组中的所有内容。您需要使用 ReDim Preserve保留数组中的元素。

话虽如此,您不能简单地将 2D 数组重新调整为 1D 数组。你可以这样做:

Sub test()

Dim driverData As Variant
Dim newArray() As String

driverData = Range("C2:C391").Value

ReDim newArray(1 To UBound(driverData, 1))
For i = 1 To UBound(driverData)
    newArray(i) = driverData(i, 1)
Next

MsgBox newArray(3)

End Sub

关于vba - 范围没有被复制到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8505627/

相关文章:

VBA "This Command is not Available because no document is open"

excel - 使用 Replace 仅替换字符串的一小部分

excel - 有没有办法命名幻灯片 - 并通过这个名称而不是幻灯片索引来选择幻灯片?

vba - 平均公式 Excel VBA

c# - 使用 C# Closed XML 在 excel 中合并列的性能

excel - 需要循环帮助

excel - 同步功能区下拉菜单以显示事件工作表

arrays - 在 VBA 中仅粘贴二维数组的特定索引

java - 如何使用 apache poi 开始循环中的特定单元格?

c# - 在任务计划程序中配置 exe 时,检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败