我想为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的新手,但我确实需要帮助。提前谢谢。
答案 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.