使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

摘要

本文包含可用于处理多种类型的数组的示例 Microsoft Visual Basic for Applications过程。

更多信息

Microsoft 提供编程示例仅供说明,不提供明示或默示担保。 这包括但不限于适销性或针对特定用途的适用性的默示保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供附加的功能或构造过程来满足你的特定要求。 注意:在Visual Basic for Applications过程中,撇号 () 后面的单词是注释。
 

填充数组,然后将其复制到工作表

  1. 打开新工作簿并插入 Visual Basic 模块表。

  2. 在模块表中键入以下代码。

    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
    
  3. 选择“Sheet1”。

  4. 在“工具”菜单上,指向“宏”,然后单击“宏”。

  5. 在“宏”对话框中,单击“Sheet_Fill_Array”,然后单击“运行”。

从工作表获取值并填充数组

  1. 在单元格 A1:A10 的 Sheet1 上键入值。

  2. 在 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
    
  3. 选择“Sheet1”。

  4. 在“工具”菜单上,指向“宏”,然后单击“宏”。

  5. 在“宏”对话框中,单击“ from_sheet_make_array”,然后单击“运行”。

传递和接收数组

  1. 在模块表中,键入以下代码:

    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
    
  2. 选择“Sheet1”,并突出显示区域 A1:A10。

  3. 在“工具”菜单上,指向“宏”,然后单击“宏”。

  4. 在“宏”对话框中,单击“pass_array”,然后单击“运行”。

比较两个数组

  1. 在 Sheet1 上创建两个命名区域。 将一个 range1 命名为另一个 range2。

    例如,突出显示单元格区域 A1:A10 并将其命名为 range1;突出显示单元格区域 B1:B10 并将其命名为 range2。

  2. 在模块表中键入以下代码。

    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
    
  3. 选择“Sheet2”。

  4. 在“工具”菜单上,指向“宏”,然后单击“宏”。

  5. 在“宏”对话框中,单击“ compare_two_array”,然后单击“运行”。

    每次比较都会显示一个消息框。

填充动态数组

  1. 在模块表中,键入以下代码:

    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
    
  2. 在“工具”菜单上,指向“宏”,然后单击“宏”。

  3. 在“宏”对话框中,单击“fill_array”,然后单击“运行”。

注意:更改变量“number_of_elements”将确定数组的大小。
 

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×