我的工作簿有三个带有文本框的工作表(名为Sheet1〜Sheet3)。
下面的代码在每张纸上
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
If Not dontDoThat Then Synchronize Me.TextBox1.Text, Me.Name
Dim sht As Worksheet
Dim DataRange As Range
Dim mySearch As Variant
'Load Sheet into A Variable
Set sht = Me
'Filtered Data Range (include column heading cells)
Set DataRange = Me.ListObjects(1).Range 'Table
'Retrieve User's Search Input
mySearch = Me.OLEObjects("TextBox1").Object.Value
Select Case KeyCode
Case 13
'Filter Data
DataRange.AutoFilter _
Field:=3, _
Criteria1:="=*" & mySearch & "*", _
Operator:=xlAnd
Exit Sub
End Select
End Sub
并且它有一个模块。
Public dontDoThat As Boolean ' a public variable, visible throughout all your project you'll use to give way to synchronizing activity
Option Explicit
Sub Synchronize(txt As String, shtName As String)
dontDoThat = True ' set your public variable to True and prevent subsequent TextBox1_Change() events to run it again
Dim sht As Variant
For Each sht In Array("Sheet1", "Sheet2", "Sheet3")
If sht <> shtName Then Worksheets(sht).TextBox1.Text = txt
Next
dontDoThat = False ' set your public variable to False and allow subsequent TextBox1_Change() events to run it
End Sub
这些代码可以同步所有工作表上的文本框。
但这仅适用于文本。
如果我在Sheet1的TEXTBOX1中键入一些文本,则相同的文本将显示在所有其他表的TEXTBOX1中。
但是自动筛选器在其他纸张上不起作用。
在Sheet1的TEXTBOX1上键入一些文本并按Enter键后,自动筛选器仅在Sheet1中起作用。
我想触发所有工作表的文本框上的Enter键。
这些表还具有TEXTBOX2。因此,我想知道如何将同步应用于TEXTBOX1和TEXTBOX2。
我附加了一个excel示例文件和想要的结果图片。你可以在这里下载。 http://upload.ee/files/9683228/SAMPLE.zip.html
我想要两种类型的代码。
代码1:当我在工作表上的TEXTBOX1中键入一个字母并按Enter键时,它将同步所有工作表上的TEXTBOX1,然后在所有工作表上的TEXTBOX1中按Enter键。
代码2:当我在工作表上的TEXTBOX1或TEXTBOX2中键入一个字母并按Enter键时,它将同步所有工作表上的TEXTBOX1和TEXTBOX2,然后在所有工作表上的TEXTBOX1和TEXTBOX2中按Enter键。 / strong>
我需要别人的帮助。