Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Userform:初始化,直到文本框中的值发生更改_Excel_Vba_Userform - Fatal编程技术网

Excel Userform:初始化,直到文本框中的值发生更改

Excel Userform:初始化,直到文本框中的值发生更改,excel,vba,userform,Excel,Vba,Userform,我有带文本框的UserForm。那么“其他数据”中就有价值了!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 = T

我有带文本框的UserForm。那么“其他数据”中就有价值了!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

问题是UserForm中的数字覆盖了“其他数据”中的公式!C6打开用户窗体时。这会影响我的Excel应用程序中的其他公式和计算。如何防止“其他数据”!C6重写,直到我手动更改UserForm上文本框中的值为止

每次更改文本框中的值时,都会触发更改事件并重写C6。诀窍是在进行更改时关闭EnableEvents,从而停止初始化和其他事件中的触发

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

End Sub