我可以评估两个工作簿工作表名称,如果它们具有相同的名称,那么请转到下一个工作表吗?

时间:2018-05-29 22:01:11

标签: excel vba

我有两个工作簿,其中POSSIBLY具有相同的工作表,两者名称相同。

Workbook 1 example

Workbook 2 example

我的问题是,我可以评估所有工作簿的工作表名称与另一个工作簿的名称,如果第一个工作簿中有一些缺失,那么复制它们吗?

我的代码是我复制它们的全部是:

    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。

1 个答案:

答案 0 :(得分:1)

如果CopyWorksheets(如标签上所示)不存在,则Name可以为For ... Loop提供参数。当On Error Resume Next引发错误时,它会通过使用OERN(Set foundSheet = copySheetTo.Worksheets(ws.Name))继续避免双foundSheet。如果它会引发错误,则NothingfoundSheet并相应地复制它。循环将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'),]