更新用户表单标签Worksheet_Calculate并每次打开用户表单

时间:2019-03-14 08:38:59

标签: excel vba

我有一个用户窗体,其中的标签每次更改工作表“价格计算”时都会更新。除了关闭用户表单然后再次打开它的情况之外,其他所有内容似乎都可以正常工作。那么所有标签都是空的。如果我打开工作表“价格计算”并在其中进行更改,那么在打开用户窗体时,我将再次获得用户窗体的值。如何在打开用户窗体时也更新标签?

这是我的工作表“价格计算”代码:

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

1 个答案:

答案 0 :(得分:2)

使用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
相关问题