Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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 用于将数据复制到其他工作簿的高级筛选器_Excel_Vba - Fatal编程技术网

Excel 用于将数据复制到其他工作簿的高级筛选器

Excel 用于将数据复制到其他工作簿的高级筛选器,excel,vba,Excel,Vba,我有一个工作簿,一个工作表上有一个搜索界面,另一个工作表上有一个数据库。 这是我用来对数据库执行高级筛选的代码,它返回搜索界面工作表上的值: Private Sub Find_Click() Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheet4.Range("V1:AE2"), CopyToRange:=Sh

我有一个工作簿,一个工作表上有一个搜索界面,另一个工作表上有一个数据库。 这是我用来对数据库执行高级筛选的代码,它返回搜索界面工作表上的值:

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
我现在尝试将这两个工作表拆分为两个工作簿。因此,将对工作簿数据中包含的数据执行高级筛选,并将结果返回到工作簿搜索界面。 两个工作簿将始终同时打开

我尝试插入变量:

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
我尝试了很多东西,但都不管用。我不是太博学,我几乎是在黑暗中拍摄。任何帮助或指导都将不胜感激

==更新===

谢谢你的意见,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()
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

好吧,经过反复试验,我终于成功了!是的!不知道为什么,但只有当我将表4作为工作表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

错误消息以及在哪一行?除非有引用集,否则不能在其他工作簿中使用工作表的代码名,因此需要使用wbData.SHEETSHEET2,而不是wbData.Sheet2,根据需要调整工作表名称。更改工作表Sheet2后,我现在收到一个编译错误:CriteriaRange之后的预期表达式:=不需要需要wbSearch.Sheet4,但只需要Sheet4.thx作为输入!但我仍然在wbData.SheetsSheet2.RangeA1.CurrentRegion.AdvancedFilter操作:=xlFilterCopy.行上遇到了那个该死的语法错误,。我是否应该换一种方式来完成这项任务?您收到的确切错误是什么?可能是截图?获取编译错误:语法错误