我有一个工作簿,在一个工作表上有一个搜索界面,在另一个工作表上有一个数据库。 这是我用来在数据库上执行高级过滤器的代码,它返回搜索界面工作表上的值:
Private Sub Find_Click()
Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheet4.Range("V1:AE2"), CopyToRange:=Sheet4.Range("E1:T1"), Unique:=False
End Sub
我现在正在尝试将2个工作表拆分为2个工作簿。因此,将对工作簿“数据”中包含的数据执行高级筛选,并将结果返回到工作簿“SearchInterface”。 这两本工作簿将始终同时打开。
我尝试插入变量:
Private Sub Find_Click()
Set wbSearch = ThisWorkbook
Set wbData = Workbooks("GAL_db.xlsx")
wbData.Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=wbSearch.Sheet4.Range("V1:AE2"), CopyToRange:=wbSearch.Sheet4.Range("E1:T1"), Unique:=False
End Sub
上出现语法错误
wbData.Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy
我尝试了很多东西,但没有任何作用。不是太知识渊博,我几乎在黑暗中拍摄。任何帮助或方向将不胜感激。
== UPDATE ===
感谢输入Rory! 我按照建议更改了代码:
Private Sub Find_Click()
Set wbData = Workbooks("GAL_db.xlsx")
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheet4.Range("V1:AE2"), CopyToRange:=Sheet4.Range("E1:T1"), Unique:=False
End Sub
现在我再次遇到语法错误:
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
和Private Sub Find_Click()
以黄色突出显示...
答案 0 :(得分:0)
我认为您正在寻找两种解决方案的组合......
Private Sub Find_Click()
Set wbSearch = ThisWorkbook
Set wbData = Workbooks("GAL_db.xlsx")
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=wbSearch.Sheets("Sheet4").Range("V1:AE2"), CopyToRange:=wbSearch.Sheets("Sheet4").Range("E1:T1"), Unique:=False
End Sub
答案 1 :(得分:0)
好吧,通过反复试验我得到了它的工作! Yeeey!不知道为什么,但它只有在我将Sheet4引用为工作表(1)时才有效。以下代码适用于我的目的:
Private Sub Find_Click()
Dim wbData As Range
Dim wbCriteria As Range
Dim wbExtract As Range
Set wbData = Workbooks("GAL_db.xlsx").Worksheets("data").Range("A1")
Set wbCriteria = ThisWorkbook.Worksheets(1).Range("V1:AE2")
Set wbExtract = ThisWorkbook.Worksheets(1).Range("E1:T1")
wbData.CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=wbCriteria, CopyToRange:=wbExtract, Unique:=False
End Sub