摘要
本文包含可用于处理多种类型的数组的示例 Microsoft Visual Basic for Applications过程。
更多信息
Microsoft 提供编程示例仅供说明,不提供明示或默示担保。 这包括但不限于适销性或针对特定用途的适用性的默示保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供附加的功能或构造过程来满足你的特定要求。 注意:在Visual Basic for Applications过程中,撇号 () 后面的单词是注释。
填充数组,然后将其复制到工作表
-
打开新工作簿并插入 Visual Basic 模块表。
-
在模块表中键入以下代码。
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
选择“Sheet1”。
-
在“工具”菜单上,指向“宏”,然后单击“宏”。
-
在“宏”对话框中,单击“Sheet_Fill_Array”,然后单击“运行”。
从工作表获取值并填充数组
-
在单元格 A1:A10 的 Sheet1 上键入值。
-
在 Visual Basic 模块表中,键入以下代码:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
选择“Sheet1”。
-
在“工具”菜单上,指向“宏”,然后单击“宏”。
-
在“宏”对话框中,单击“ from_sheet_make_array”,然后单击“运行”。
传递和接收数组
-
在模块表中,键入以下代码:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
选择“Sheet1”,并突出显示区域 A1:A10。
-
在“工具”菜单上,指向“宏”,然后单击“宏”。
-
在“宏”对话框中,单击“pass_array”,然后单击“运行”。
比较两个数组
-
在 Sheet1 上创建两个命名区域。 将一个 range1 命名为另一个 range2。
例如,突出显示单元格区域 A1:A10 并将其命名为 range1;突出显示单元格区域 B1:B10 并将其命名为 range2。 -
在模块表中键入以下代码。
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
选择“Sheet2”。
-
在“工具”菜单上,指向“宏”,然后单击“宏”。
-
在“宏”对话框中,单击“ compare_two_array”,然后单击“运行”。
每次比较都会显示一个消息框。
填充动态数组
-
在模块表中,键入以下代码:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
在“工具”菜单上,指向“宏”,然后单击“宏”。
-
在“宏”对话框中,单击“fill_array”,然后单击“运行”。
注意:更改变量“number_of_elements”将确定数组的大小。