请求的集合成员不存在 - 从阵列复制到Word表时出现VBA错误

时间:2015-04-08 14:04:09

标签: vba csv word-vba

我正在从csv文件中读取一个字符串,并尝试将其打印到word文档表中的相应单元格中。到目前为止我有这个,但它不断抛出集合不存在的错误:

Private Sub CommandButton1_Click()

    Dim MyData As String, strData() As String

    Open "D:\Users\file2.csv" For Binary As #1
    MyData = Space$(LOF(1))
    Get #1, , MyData
    Close #1
    strData() = Split(MyData, ",")

    For i = 1 To UBound(strData)
        ActiveDocument.Tables(1).Cell(i, 2).Range.Text = strData(i)
    Next i
End Sub

基本上我正在获取数组的第i个元素并将其粘贴到第二列的第i行。

csv文件只有1行(总是只有一行),包含6个字段:

hello,world,blah,haha,yes,huh

为了安全(并且出于测试目的),我的表是一个8x8表,它仍然会在ActiveDocument...行上抛出错误。

为了更安全,我有2个表,(以防我的表号关闭(不确定它是从1还是0开始))。

将该行更改为:

ActiveDocument.Tables(1).Cell(1, i).Range.Text = strData(i - 1)

它有效。但是,只有在我关闭用户表单后才会显示文本。如何在按钮单击时显示文本?

1 个答案:

答案 0 :(得分:0)

事实证明我之后还有另一个功能,我没有使用。当我评论这个功能时,它起作用了。我仍然不知道为什么一个未使用的函数会阻止userform显示输入的数据,但它可以工作。

关于Collection不存在错误,我将行改为: ActiveDocument.Tables(1).Cell(1, i).Range.Text = strData(i - 1) 现在它可以工作