用户窗体:初始化直到 TextBox 中的值发生变化

Userform: Iniialize until value changes in TextBox

我有带文本框的用户窗体。然后 'Other Data'!C6 中有值,在其他数据的单元格 C6 中是公式 =D6.

然后我将值传递给单元格:

Private Sub TextBox3_Change()
ThisWorkbook.Worksheets("Other Data").Range("C6").Value = Me.TextBox3.Text
End Sub

从单元格获取值:

Private Sub UserForm_Initialize()
Me.TextBox3.Text = ThisWorkbook.Worksheets("Other Data").Range("C6").Value
End Sub

Private Sub UserForm_Activate()
Me.TextBox3.Text = ThisWorkbook.Worksheets("Other Data").Range("C6").Value
End Sub

Private Sub UserForm_Click()
Me.TextBox3.Text = ThisWorkbook.Worksheets("Other Data").Range("C6").Value
End Sub

问题是打开用户窗体时,来自用户窗体的数字覆盖了 'Other Data'!C6 中的公式。这会影响我的 Excel 应用程序中的其他公式和计算。在我手动更改 UserForm 上的 TextBox 中的值之前,如何防止 'Other Data'!C6 覆盖?

每次更改文本框中的值都会触发更改事件并覆盖 C6。诀窍是在进行更改时通过关闭 EnableEvents 来停止初始化和其他事件的触发

Private Sub UserForm_Initialize()
application.EnableEvents = false
Me.TextBox3.Text = ThisWorkbook.Worksheets("Other Data").Range("C6").Value
application.EnableEvents = true

End Sub