我在电子表格中有四张纸。
在每张纸上都有一个文本框。
当我在sheet1上输入文本框时,我希望sheet2,sheet3和sheet4上的文本框填充相同的值。
答案 0 :(得分:3)
这是另一种方式:
创建一个模块,并将此代码放在那里。这需要针对您自己的特定文本框名称和工作表名称进行配置
Public Sub UpdateTextBoxes(str As String)
Sheets("sheet1").TextBox1.Text = str
Sheets("sheet2").TextBox1.Text = str
Sheets("sheet3").TextBox1.Text = str
End Sub
然后,对于您希望复制的每个文本框对象,将其用于其更改事件(工作表类模块)(更改参数以满足您的需求)
Private Sub TextBox1_Change()
UpdateTextBoxes Me.TextBox1.Text
End Sub
通过这种方式,您可以为自己认为合适的控件命名,并且可以从任何文本框更新文本,并且它们始终是一致的。
答案 1 :(得分:2)
这是一种方法:将第一个文本框的LinkedCell属性设置为A1。将每个其他文本框的LinkedCell属性设置为其自己工作表的A1。然后在表2-4中,单元格A1,放
=Sheet1!A1
现在,无论您在Sheet1上的文本框中键入什么,都将位于工作表2-4上的文本框中。如果在2-4中的文本框中键入任何内容,则会断开链接。但是根据你的问题,看起来你只想输入第一个。
这是另一种方式。
Private Sub TextBox1_Change()
Dim ws As Worksheet
For Each ws In Me.Parent.Worksheets
ws.OLEObjects("TextBox1").Object.Text = Me.TextBox1.Text
Next ws
End Sub
将它放在工作表的类模块中。它假定您的所有文本框都命名为TextBox1。每当你更改Sheet1上的那个时,另一个工作表上的那个就会改变。
答案 2 :(得分:0)
您是否希望其他文本框可编辑,或者只是始终显示第一个文本框的内容?当用户编辑第2个,第3个等时(在第一种情况下),其他文本框会发生什么?这些问题会影响解决方案......但是如果你只想让盒子模仿第一个,那就像这样使用SheetName!CellAddress
:
=WorksheetName!A1
只需替换工作表的名称和相应的单元格。
答案 3 :(得分:0)
在工作簿中的某处创建命名区域,然后在textbox linkedcell属性中键入该名称。