更新 - 仍未解决
MODUL
Public igOneVar As Integer
Sub ShowUserForm1()
UserForm1.Show
End Sub
表单
Private Sub Name_Click()
Dim laufVar As Integer
MsgBox "start " & igOneVar
If ActiveSheet.Range("B2").Value = 2 Then
For laufVar = 8 To 250
If ActiveSheet.Range("C2").Value = 2 Then
ActiveSheet.Range("C3").Value = "If"
Exit For
ElseIf ActiveSheet.Range("C2").Value = 3 Then
ActiveSheet.Range("C3").Value = "ElseIf"
igOneVar = igOneVar + 1
Exit For
End If
Next laufVar
End If
MsgBox "end " & igOneVar
Unload UserForm1
End Sub
所以我有一个按钮,打开一个Userform(模块),其中有一个cmdButton。如果我单击cmdButton(Name_Click),它将启动一些代码(表单)。但它不会存储增量变量。 MsgBox "start " & igOneVar
中的变量为0并保持为0.
答案 0 :(得分:0)
这个解决方案对我有用。我只是将我的变量存储在Excel工作表上。不是最好的方法,但我无法获得其他任何工作。
<强> MODUL 强>
Sub ShowUserForm1()
UserForm1.Show
End Sub
<强>表单强>
Private Sub Name_Click()
Dim laufVar As Integer
Dim igOneVar As Integer
igOneVar = Worksheets("Test").Range("A10").Value
If ActiveSheet.Range("B2").Value = 2 Then
For laufVar = 8 To 250
If ActiveSheet.Range("C2").Value = 2 Then
ActiveSheet.Range("C3").Value = "If"
Exit For
ElseIf ActiveSheet.Range("C2").Value = 3 Then
ActiveSheet.Range("C3").Value = "ElseIf"
igOneVar = igOneVar + 1
Worksheets("Test").Range("A10").Value = igOneVar
Exit For
End If
Next laufVar
End If
Unload UserForm1
End Sub
答案 1 :(得分:0)
由于变量igOneVar是公共的,因此其范围扩展到userform,当 Both 单元格“B2”= 2且单元格“C2”= 3时,它将递增到活动表格。
只要这两个条件都成立,由于EXIT FOR语句,igOneVar应该增加到1。尝试设置断点,因为似乎唯一的问题是从不执行增加igOneVar的行。