我有一个名为“ DisplaySummaryForm”的用户窗体,它旨在显示有关正在计算的项目的实时信息。我有标签来显示工作表单元格中的值。现在,我必须一直重新打开UserForm才能更新我的值。如何一直更新它们?因此,它们在打开的用户窗体中被称为“相对时间”吗?
用于打开用户窗体的按钮:
Sub DisplaySummary()
DisplaySummaryForm.Show vbModless
End Sub
用户窗体代码:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Controls("Label11").Caption = ThisWorkbook.Sheets("MAIN").Range("D11").value
Controls("Label12").Caption = ThisWorkbook.Sheets("MAIN").Range("D14").value
Me.TextBox2.value = ThisWorkbook.Sheets("Price calculation").Range("I148").value
Controls("Label14").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
Controls("Label15").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
Controls("Label18").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
Controls("Label16").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
Controls("Label17").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
Controls("Label20").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
Controls("Label22").Caption = ThisWorkbook.Sheets("Price calculation").Range("Q148").value
End Sub
答案 0 :(得分:0)
我相信Excel中没有这样的选项可以自动更新Userforms中的值,但是当使用以下代码对单元格进行更新时,可以根据需要进行稍微的修改来卸载和加载 DisplaySummaryForm 。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("Q148")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End Sub
Reference输入上述代码
答案 1 :(得分:0)
感谢大家。我想出了这个解决方案:
Private Sub Worksheet_Calculate()
Dim KeyCell1 As Range
Dim KeyCell2 As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCell1 = Range("Q148")
Set KeyCell2 = Range("Q149")
Set KeyCell3 = Range("Q150")
Set KeyCell4 = Range("Q151")
Set KeyCell5 = Range("Q152")
Set KeyCell6 = Range("Q156")
' Display a message when one of the designated cells has been
' changed.
DisplaySummaryForm.Controls("Label14").Caption = Format(KeyCell1.Value, "#,##0.00")
DisplaySummaryForm.Controls("Label15").Caption = Format(KeyCell2.Value, "#,##0.00")
DisplaySummaryForm.Controls("Label16").Caption = Format(KeyCell3.Value, "#,##0.00")
DisplaySummaryForm.Controls("Label17").Caption = Format(KeyCell4.Value, "#,##0.00")
DisplaySummaryForm.Controls("Label18").Caption = Format(KeyCell5.Value, "#,##0.00")
DisplaySummaryForm.Controls("Label20").Caption = Format(KeyCell6.Value, "#,##0.00")
End Sub