excel VBA -循环中的动态变量名

frebpwbc  于 2023-03-20  发布在  其他
关注(0)|答案(2)|浏览(328)

我有一个宏包含一个变量的固定名称,除了最后一个字符的变化:即(批次总计1、批次总计2、批次总计3等)。
上面的每个BatchTotal值都是在另一个宏中定义的,所以我首先公开定义了它们。
问题是,我试图在一个循环中使用它们,但徒劳的,BatchTotal(i)总是返回0请检查我的代码:

Public BatchTotal(1 To 5) As Double
Sub priority_calculation()

'Some Code

For i = 1 To 5
  If BatchTotal(i) > 0 Then           
    Cells(k, 2).PasteSpecial Paste:=xlPasteValues
    Cells(k, 3) = C1
    Cells(k, 8) = Q1
  End If
Next i

End Sub
euoag5mw

euoag5mw1#

参考您之前的帖子,如果BatchTotal1、2、3、4是Userform1上的文本框,您可以使用以下内容设置数组值

Dim i as Long
For i = 1 To 5
    BatchTotal(i) = UserForm1.Controls("BatchTotal" & i)
Next
e4eetjau

e4eetjau2#

Sub doTheJob()
   Dim mdl As String, v As Variant, i as Integer
   mdl = "Module2"    ' the module where the BatchTotal1, BatchTotal2 ...  implemented
   For i = 1 To 5
     v = Application.Run(mdl & ".BatchTotal" & i)
     If v > 0 Then
       Cells(k, 2).PasteSpecial Paste:=xlPasteValues
       Cells(k, 3) = C1
       Cells(k, 8) = Q1
     End If
   Next i

End Sub

相关问题