如何根据特定条件将工作表移动到新工作簿中?
如果工作表单元格H1(或单元格(1,8))包含" PI Fin Ops"我需要将工作表移动到新工作簿。
我的猜测如下,但它不起作用。非常感谢任何帮助!
Sub NewWb()
For Each Worksheet In ThisWorkbook.Worksheets
If Cells(1, 8).Value = "PI Fin Ops" Then
Worksheet.Move After:=Workbooks.Add
End If
Next Worksheet
End Sub
答案 0 :(得分:0)
试试这个:
Sub NewWb()
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Add
For Each ws In wb1.Sheets
If ws.Cells(1, 8).Value = "PI Fin Ops" Then
ws.Move After:=wb2.Sheets(wb2.Sheets.Count)
End If
Next ws
End Sub
你的一些错误:
我认为使用"工作表"作为变量名称被禁止。
答案 1 :(得分:0)
此函数将遍历工作表并将它们添加到新工作簿,然后返回工作簿对象。
Function NewWb() As Workbook
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Add
For Each ws In ThisWorkbook.Worksheets
If ws.Cells(1, 8).Value = "PI Fin Ops" Then
ws.Move After:=wb.Sheets(1)
End If
Next ws
Set NewWb = wb
End Function