首页 > 解决方案 > 我可以声明一个可以保留所有学生姓名的单个变量数组,而不是声明这么多变量吗?

问题描述

我有一个场景,我想为变量分配 5 个国家/地区名称,并且在一般实践中,我为我分配给每个国家/地区名称的所有五个变量声明了五个变量,下面是代码。

Sub Array_Example()

  Dim India As String
  Dim Australia As String
  Dim Singapore As String
  Dim Russia As String
  Dim Malaysia As String

End Sub

标签: excelvba

解决方案


您的意思是声明一个数组然后分配给该数组吗?

Option Explicit

Sub Array_Example()

    Dim India As String
    Dim Australia As String
    Dim Singapore As String
    Dim Russia As String
    Dim Malaysia As String

    'versus (instead...)
    Dim students(0 To 4) As String
    students(0) = "India" 'etc

End Sub

注意@Mikku 的点 re 2D 数组(如果有关联的值):

Sub Array_Example()
    '2D example
    Dim students(0 To 4, 0 To 1) As String
    students(0, 0) = "India": students(0, 1) = "India's associated value"

    Stop 'Delete me later
End Sub

如果你沿着那条路线(键,值)走,那么字典会更有用

Sub Dict_Example()
    Dim students As Object

    Set students = CreateObject("Scripting.Dictionary")

    students.Add "India", "India's associated value" 'etc

    Stop 'Delete me later
End Sub

推荐阅读