我从Microsoft复制了此代码,但是它不起作用。
Dim Pixels(1 To 3) As Integer
Pixels = Array(1, 2, 3)
执行时,我在Array语句中的'1'上遇到错误 说“无效的外部程序”。
我正在从初始化模块运行代码,并希望有一种快速的方法来初始化“像素”,并希望我可以使用“数组”。
感谢您的帮助。 Mac
答案 0 :(得分:2)
这里有一些示例方法...
Public Sub DefineArray()
Dim i As Long
' ---------------------------------------------------------------
' Using the Array function
' ---------------------------------------------------------------
Dim arrTest1 As Variant
arrTest1 = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
For i = 0 To UBound(arrTest1)
Debug.Print arrTest1(i)
Next
' ---------------------------------------------------------------
' ReDim Preserve
' ---------------------------------------------------------------
Dim arrTest2() As String
For i = 0 To 10
ReDim Preserve arrTest2(i)
arrTest2(i) = i
Next
For i = 0 To UBound(arrTest2)
Debug.Print arrTest2(i)
Next
' ---------------------------------------------------------------
' Fixed at declaration
' ---------------------------------------------------------------
Dim arrTest3(10) As String
For i = 0 To UBound(arrTest3)
arrTest3(i) = i
Next
For i = 0 To UBound(arrTest3)
Debug.Print arrTest3(i)
Next
' ---------------------------------------------------------------
' Using a function that returns an array, e.g. Split
' ---------------------------------------------------------------
Dim strTest As String, arrTest4 As Variant
strTest = "This is a test"
arrTest4 = Split(strTest, " ")
For i = 0 To UBound(arrTest4)
Debug.Print arrTest4(i)
Next
' ---------------------------------------------------------------
' From a range
' ---------------------------------------------------------------
Dim arrTest5 As Variant, lngRow As Long, lngCol As Long
arrTest5 = Sheet1.Range("A1:K10").Value
For lngRow = LBound(arrTest5, 1) To UBound(arrTest5, 1)
For lngCol = LBound(arrTest5, 2) To UBound(arrTest5, 2)
Debug.Print arrTest5(lngRow, lngCol)
Next
Next
End Sub
希望这会给您一个很好的横截面,并且根据注释,确保它包含在函数或过程(子)中。看看我的例子。
答案 1 :(得分:0)
您可以在下面尝试此示例。
Dim Pixcels(2) As Integer
Pixcels(0) = 1
Pixcels(1) = 2
Pixcels(2) = 3