excel 2010 vba循环通过声明的variabels语法结果编译错误variables未定义

我宣布了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个客户端有多less假期。

  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 

我得到一个编译错误,说variables没有定义:Hol_i没有定义。 我尝试了“Hol_”&我和其他人,但无法纠正这一点。 有人有想法吗? 谢谢

您不能连接variables名称。 即使当i=1时, Hol_1也是与Hol_1完全分离的variables。

你需要一个数组来做到这一点:

 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