让我首先承认我是VBA的新手(虽然我已经设法使用本网站的最后2条年份)。但我完全跺脚在这一个。Excel VBA:高级过滤器将数据复制到另一个工作簿
我有一个工作簿与一个工作表上的搜索界面和另一个工作表上的数据库。 这是我使用做返回的搜索界面表中的数据对数据库的高级筛选代码:
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”。 2个工作簿将始终在同一时间打开。
我试图把各种变量:在
wbData.Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy
我试过很多东西,但没有任何工程
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
获取语法错误。不是太知识渊博,我几乎在黑暗中拍摄。任何帮助或方向将不胜感激。
== UPDATE ===
感谢输入罗里! 我改变了代码的建议是:
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()
以黄色突出显示...
错误消息和在哪一行? – 2014-10-16 15:14:35
您不能在其他工作簿中使用工作表的代号(除非您有参考集),因此您需要使用'wbData.Sheets(“Sheet2”)'而不是'wbData.Sheet2'(调整工作表名称有必要的)。 – Rory 2014-10-16 15:16:37
改变'表(“Sheet2的”)之后'我现在得到一个编译错误:预期表达式后“CriteriaRange:=” – acadie 2014-10-16 15:43:17