excel - 更新用户表单标签 Worksheet_Calculate 和每次打开用户表单
问题描述
我有用户表单,其中有标签,每次我在工作表“价格计算”上进行更改时都会更新这些标签。除了我关闭用户窗体然后再次打开它的情况外,一切似乎都运行良好。那么所有标签都是空的。如果我在打开用户表单时转到我的工作表“价格计算”并在那里进行更改,我将再次获取用户表单的值。如何在用户表单打开时更新标签?
这是我的工作表“价格计算”的代码:
Private Sub Worksheet_Calculate()
Dim Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Price calculation")
Summary.Controls("Label630").Caption = Ws.Range("I1850").Value
Summary.Controls("Label635").Caption = Ws.Range("I1850").Value
Summary.Controls("Label634").Caption = Ws.Range("I1854").Value
Summary.Controls("Label633").Caption = Ws.Range("I1855").Value
Summary.Controls("Label632").Caption = Ws.Range("I1856").Value
Summary.Controls("Label631").Caption = Ws.Range("I1860").Value
End Sub
用户表单打开:
Sub DisplaySummary()
Summary.Show (vbModeless)
End Sub
解决方案
使用Prive Sub Userform_Initialize()
您在用户窗体打开时设置您想要的标签。如下所示:
Private Sub Userform_Initialize()
Dim Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Price calculation")
Me.Controls("Label630").Caption = Ws.Range("I1850").Value
Me.Controls("Label635").Caption = Ws.Range("I1850").Value
Me.Controls("Label634").Caption = Ws.Range("I1854").Value
Me.Controls("Label633").Caption = Ws.Range("I1855").Value
Me.Controls("Label632").Caption = Ws.Range("I1856").Value
Me.Controls("Label631").Caption = Ws.Range("I1860").Value
Set Ws = Nothing
End Sub