我很难根据Excel中的工作表值以VBA形式更新标签。到目前为止,我尝试过的方法:
第1次拍摄:
Sub Update_Label_FirstTime()
Label1.Caption = Sheets(1).Cells(1, 1)
End Sub
'Whenever I call the Macro for a second time It fails and VBA freezes my form
第二名
Private Sub UserForm_Activate()
call Update_Label
End Sub
Sub Update_Label()
Label1.Caption = Sheets(1).Cells(1, 1)
Application.OnTime Now() + TimeValue("00:00:01"), "Update_Label"
End Sub
' also tried Controls("Label1").Caption = Sheets(1).Cells(1, 1).Value
这些都存储并从用户形式代码中运行。两种代码在第一次加载/呼叫上正常工作,但均在我第二次称呼它们时打破我的表格。每次我呼吁这些更新(加载初始值之后)frees和popped 中的vba窗口,没有任何代码突出显示或错误消息。
我以前曾使用过这些方法,没有这样的问题。有任何想法?
尝试将Update_Label
移至标准模块。
您将需要在代码中引用表单。您可能还需要在获得单元格之前重新计算。
Sub Update_Label()
Dim rng As Range
Set rng = Sheets(1).Cells(1, 1)
rng.Calculate
UserForm1.Label1.Caption = rng
Application.OnTime Now() + TimeValue("00:00:01"), "Update_Label"
End Sub