Excel VBA表单 - 基于单元格值(调试)更新标签



我很难根据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

最新更新