分配给数组时编译错误 - VBA(Excel)

时间:2014-04-20 03:35:10

标签: arrays excel excel-vba compilation assign vba

我想为Integer数组赋值,但是我得到了一个编译时错误。

这是我的代码:

Private Sub A()
    Dim i As Integer
    Dim Width(3) As Integer
    Dim TempArray As Variant
    TempArray = Array(12, 6, 12, 5)
    For i = 0 To 3
        Width (i) = CInt(TempArray(i))
    Next i
End Sub

错误在这一行:

Width (i) = CInt(TempArray(i))

错误消息是:“编译错误。预期:#”。

我不知道这句话有什么问题。我使用了保留字吗?我是VB的新手,但我确实需要帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的评论让我进行了一些研究。 Width不仅仅是Excel保留字,而是Column.Width。它实际上是一个与写入文本文件有关的VBA语句,它期望为输出打开一个文件的数量。

以下是Excel 2010 VBA帮助中的文本:

  

宽度#声明

     

为使用Open打开的文件指定输出行宽   言。

     

语法

     

宽度#filenumber,宽度

     

Width#statement语法包含以下部分:

     

部分描述filenumber必需。任何有效的文件编号。宽度   需要。数字表达式在0-255范围内,包括在内   表示新行之前一行中出现的字符数   开始。如果width等于0,则对行的长度没有限制。   width的默认值为0.

     

示例此示例使用Width#语句设置输出行   文件的宽度。

Dim I
Open "TESTFILE" For Output As #1    ' Open file for output.
VBA.Width 1, 5    ' Set output line width to 5.
For I = 0 To 9    ' Loop 10 times.
    Print #1, Chr(48 + I);    ' Prints five characters per line.
Next I
Close #1    ' Close file.