2014-09-27 30 views
0

因此我有以下代码,它使用excel中的advancedfilter函数为我筛选几个条件,然后将其复制到具有条件名称的新工作簿中。我现在要做的是呃,让我们说过滤条件1,复制它,而不是创建新的工作簿并将其粘贴到那里,我希望它将其粘贴到具有相同名称的当前工作簿中,但是诀窍这里是我不希望它覆盖我所拥有的当前数据,但要找到最后一行(我知道该怎么做)并粘贴到那里。将过滤的数据复制到特定工作表

Dim cell As Range 
Dim curPat As String 

curpath = ActiveWorkbook.Path & "\" 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

For Each cell In Range("fbtlist") 
    [valsalesman] = cell.Value 
    Range("myFBT").AdvancedFilter Action:=xlFilterCopy, _ 
     criteriarange:=Range("criteria"), copytorange:=("extract"), unique:=False 
    Range(Range("extract"), Range("extract").End(xlDown)).Copy 
    Workbooks.Add 
    ActiveSheet.Paste 
    ActiveWorkbook.SaveAs Filename:=curpath & cell.Value & Format(Now, "ddmmyyyy - hhmmss") & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 
    ActiveWindow.Close 
    Range(Range("extract"), Range("extract").End(xlDown)).ClearContents 
Next cell 

End Sub 

任何帮助或指导,将不胜感激。

回答

0

希望下面的代码将匹配您的期望

Dim cell As Range 
Dim curPat As String 

curpath = ActiveWorkbook.Path & "\" 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

For Each cell In Range("fbtlist") 
    [valsalesman] = cell.Value 
    Range("myFBT").AdvancedFilter Action:=xlFilterCopy, _ 
    criteriarange:=Range("criteria"), copytorange:=("extract"), unique:=False 
Range(Range("extract"), Range("extract").End(xlDown)).Copy 
Workbooks.Add 'Instead of creating use the Workbook.open and perform as below 
'You may insert this code to find the last used row 
a = 2 
do while cells(a, 2) <>"" 
a = a+1 
loop 
cells(a,1).select 
Activesheet.paste 
ActiveWorkbook.SaveAs Filename:=curpath & cell.Value & Format(Now, "ddmmyyyy - hhmmss") & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 
ActiveWindow.Close 
Range(Range("extract"), Range("extract").End(xlDown)).ClearContents 
Next cell 

End Sub 
+0

嘿感谢,Yuvaraj。但让我们说标准的名称是“Criteria1”,我有我的目录中的similliar名称的工作簿,是否有一个VBA代码,将自动匹配标准名称的工作簿,并粘贴在那里与我需要做一个接一个。大约有10个工作簿,标准经常变化,所以vba更容易做到。 – user2722393 2014-09-29 07:39:13

+0

您可以检查此线程[使用特定通配符打开此目录中的所有文件](http://stackoverflow.com/questions/20554542/open-all-files-in-this-directory-with-a-specific-wildcard ) – 2014-09-29 11:00:29

相关问题