秋咪 發問時間: 電腦與網際網路軟體 · 7 年前

移動有特定字眼的多個工作表到新的活頁簿

我想要把活頁簿當中,字尾有"FMV"字眼的,就一起移動到另一個新的活頁簿(不需要儲存),當我執行了以下的巨集後,它會把所有的工作表分開移動到各別的活頁簿,也就是當符合條件的工作表有3個時,他就會開三個新活頁簿各別把它們移過去,可是我想要把所有符合條件的工作表移動到"一個"新的活頁簿就好,請問我該怎麼修改下列語法?

Dim myWS2 As Worksheet

For Each myWS2 In Worksheets

If Right(myWS2.Name, 3) = "FMV" Then

myWS2.Move

End If

Next

2 個解答

評分
  • Kubi
    Lv 5
    7 年前
    最佳解答

    Dim myWS2 As Worksheet

    Dim mybook As Workbook

    Set mybook = ThisWorkbook

    With Workbooks.Add

      For Each myWS2 In mybook.Worksheets

        If Right(myWS2.Name, 3) = "FMV" Then

          myWS2.Move after:=.Sheets(.Sheets.Count)

        End If

      Next myWS2

    End With

    2013-11-13 20:55:18 補充:

    另一種寫法請參考。

    Dim myWS2 As Worksheet

    Dim arr()

    For Each myWS2 In Sheets

      If Right(myWS2.Name, 3) = "FMV" Then

        n = n + 1

        ReDim Preserve arr(1 To n)

        arr(n) = myWS2.Name

      End If

    Next myWS2

    If n <> 0 Then

      Sheets(arr).Move

    End If

  • 7 年前

    天啊~~~太謝謝Kubi大了!!!!!成功了!!!!!非常感恩您!!!!

    2013-11-14 09:24:10 補充:

    其實我想問一下,為什麼Next後面要加 myWS2 ?

    抱歉因為我是門外漢,可能會問很蠢的問題,希望您不要介意>"

還有問題?馬上發問,尋求解答。