excel 2010 vba循环通过声明的变量语法导致编译错误变量未定义

标签 excel vba variables loops syntax-error

我声明了 5 个整数

    Public Hol_1 as integer
    Public Hol_2 as integer
    Public Hol_3 as integer
    Public Hol_4 as integer
    Public Hol_5 as integer

假设我有 3 个客户端,那么我将使用 Hol_1 到 Hol_3。这也意味着:iClients = 3
我需要做的第一件事是查看我的工作表(“假期”)以确定我的 3 个客户每个人有多少假期。
    Sub CountHolidays()

    Dim i as integer
    Dim iclients as integer
    iclients = 3
    For i=1 to iclients 
        Hol_i = WorksheetFunction.CountA(ActiveWorkbook.Sheets("Holidays").Range(Cells(2, 3 + i), Cells(50, 3 + i))) 
       'The worksheetfunction calculates the amount of Holiday-dates I have for each of my three clients
    Next i
    End sub

我收到一个编译错误,提示 undefined variable :未定义 Hol_i。我尝试了 "Hol_"& i 和其他人,但无法纠正这个问题。有人有想法吗?谢谢

最佳答案

您不能连接变量名称。 Hol_i是一个完全独立于 Hol_1 的变量即使 i=1 .

您需要一个数组来执行此操作:

Dim Hol(5) as Integer

For i=1 to iclients 
  Hol(i) = WorksheetFunction.CountA(ActiveWorkbook.Sheets("Holidays").Range(Cells(2, 3 + i), Cells(50, 3 + i)))
Next i

关于excel 2010 vba循环通过声明的变量语法导致编译错误变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381873/

相关文章:

vba - 将文本添加到文本框 Excel VBA

VBA检查数组是否为一维

python - 如何检查变量是否存在?

javascript - 通过 JSON 检索数字并存储在变量中

excel - 比较多维数组中的元素

excel - 文本到列 - 具有不同空格数的统一响应

Excel VBA 组合框默认值

excel - 尝试在自动筛选后选择 DataBodyRange 中的可见单元格时,“工作表类的选择方法失败”

c - 'const char *' 类型的变量不能分配给 'char' 类型的实体

sharepoint - 错误处理未捕获运行时错误