我有两个工作簿,其中POSSIBLY具有相同的工作表,两者名称相同。
我的问题是,我可以评估所有工作簿的工作表名称与另一个工作簿的名称,如果第一个工作簿中有一些缺失,那么复制它们吗?
我的代码是我复制它们的全部是:
Set wbk4 = Workbooks.Open("G:\Financial\Facility Work Papers and
Financials\8. Wage Reconcilliations\Wage Reconciliation 2017\December 2017
completed\" & rngFacility & " " & WageRec & " " & TwelveThirtyOne & ".xls")
For Each sh In wbk4.Worksheets
sh.Copy after:=wbk1.Sheets(wbk1.Sheets.Count)
Next sh
在这种情况下,我的基本工作簿将是wbk4。
答案 0 :(得分:1)
如果CopyWorksheets
(如标签上所示)不存在,则Name
可以为For ... Loop
提供参数。当On Error Resume Next
引发错误时,它会通过使用OERN(Set foundSheet = copySheetTo.Worksheets(ws.Name)
)继续避免双foundSheet
。如果它会引发错误,则Nothing
为foundSheet
并相应地复制它。循环将Sub Testing()
Dim wbk4 As Workbook
Set wbk4 = Workbooks.Open("G:\Financial\Facility Work Papers and Financials\8. Wage Reconcilliations\Wage Reconciliation 2017\December 2017 completed\" & rngFacility & " " & WageRec & " " & TwelveThirtyOne & ".xls")
Dim newBook As Workbook
Set newBook = Workbooks.Add
CopyWorksheets wbk4, newBook
End Sub
Public Sub CopyWorksheets(ByVal sourceBook As Workbook, ByVal copySheetTo As Workbook)
On Error Resume Next
Dim ws As Worksheet
For Each ws In sourceBook.Worksheets
Dim foundSheet As Worksheet
Set foundSheet = copySheetTo.Worksheets(ws.Name)
If foundSheet Is Nothing Then
ws.Copy After:=copySheetTo.Worksheets(copySheetTo.Worksheets.Count)
End If
Set foundSheet = Nothing
Next
On Error GoTo 0
End Sub
设置为空,为下次检查做准备。
df <- df[which(df$col1 == 'val1' & df$col2 == 'val2'),]