我在VBA中有一些代码如下:
Sub UserForm2_Activate()
....
If [statement] then
Label1.caption = x
Label2.caption = x*y
Else
...
当我用另一个标签激活UserForm时(使用UserForm2.Show),结果是Label1 = x,Label2 = 0.但是当我尝试" UserForm2.Show"从立即窗口,一切都很好,我得到了正确的数据。
我做错了什么?
实际代码:
If Sheets("SL").Range("B8").Value = True Then
Label8.Caption = Find_cost(Sheets("SL").Range("b5").Value, Sheets("SL").Range("B4").Value, "ID")
Label20.Caption = Find_cost(Sheets("SL").Range("b5").Value, Sheets("SL").Range("B4").Value, "ID") * Sheets("SL").Range("b4").Value
Else
Label8.Caption = "none"
Label20.Caption = "none"
End If
在哪里" Find_cost"是一个自定义函数
答案 0 :(得分:0)
使用userform_initialize事件而不是userform_activate。此外,您应该在变量中保存临时值并使用断点进行调试。