繁体   English   中英

如何在Visual Basic中将带有字符串的Excel单元格分配给数组值?

[英]How to assign excel cell with string to array value in visual basic?

我对Visual Basic还是很陌生,但是在将单元格值分配给数组的成员时遇到了麻烦。 基本上,我正在做的是遍历一列并将每个单元格分配给数组的新部分。 测试代码如下:

Sub Test()
    Dim List(5) As String
    Dim celltext As String

    For i = 1 To 5
        celltxt = ActiveSheet.Range("K" & i).Text
        List(i) = celltext
        MsgBox List(i)
    Next i
End Sub

每次弹出该消息框时,它都是空白的,这意味着该分配不起作用。 在那些坐标DO处的单元具有值。 有什么线索吗?

您正在分配“ celltxt”,但正在读取“ celltext”。

在每个模块的顶部添加Option Explicit这将使这些类型的错误更加明显。

  1. 当您将Dim List(5) As String 数组中的最低元素是0而不是1 您可能希望将其更改为Dim List(1 to 5) As String否则您的第一个元素在数组中将始终为空白。

  2. 您正在使用ActiveSheet 您确定它是正确的表吗?

试试这个代码

Sub Test()
    Dim List(1 To 5) As String
    Dim ws As Worksheet
    Dim i as Long

    Set ws = ThisWorkbook.Sheets("Sheet1")

    For i = 1 To 5
        List(i) = ws.Range("K" & i).Value
        MsgBox List(i)
    Next i
End Sub

您也可以尝试:

Dim List As Variant
Dim i As Long

List = ActiveSheet.Range("K1:K5")

For i = 1 To UBound(List)
    MsgBox List(i, 1)
Next i

通过仅从工作表中读取一次而不是每次循环都可以提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM