Schroedinger的标签标题更新

时间:2017-12-07 16:57:12

标签: excel vba excel-vba

我在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"是一个自定义函数

1 个答案:

答案 0 :(得分:0)

使用userform_initialize事件而不是userform_activate。此外,您应该在变量中保存临时值并使用断点进行调试。