簡體   English   中英

搜索工作表並將其從一個工作簿復制到另一個工作簿

[英]Search for and Copy Worksheets from one Workbook to another

我有一個包含宏的工作簿(wb1)。 我通過在msgbox中選擇文件來打開文件(wb)。

我想循環遍歷wb的所有工作表,並且如果諸如“ xxx ”之類的sheet.name在第一個工作表之前將工作表的副本保存在wb1中。

Sub GetFile()

    Dim fNameAndPath As Variant, wb As Workbook
    Dim wb1 As ThisWorkbook

    fNameAndPath = Application.GetOpenFilename(FileFilter:="All Files (*.*),*.*", _
      Title:="Sélectionner le fichier des extractions Magnitude sur la Phase IAS CONSO")

    If fNameAndPath = False Then Exit Sub

    Set wb = Workbooks.Open(fNameAndPath)

    For Each Sheet In wb.Sheets

        If LCase(Sheet.Name) Like "*Sheet1*" Then
            Range("A2").Select
            'ActiveSheet.Delete
        End If

    Next Sheet

嘗試這個:

Option Explicit

Sub GetFile()
    Dim fNameAndPath As Variant
    Dim sht As Worksheet

    fNameAndPath = Application.GetOpenFilename(FileFilter:="All Files (.),.", Title:="Sélectionner le fichier des extractions Magnitude sur la Phase IAS CONSO")
    If fNameAndPath = False Then Exit Sub

    Set wb = Workbooks.Open(fNameAndPath)
    For Each sht In wb.Sheets
        If LCase(sht.Name) Like "*sheet1*" Then sht.Copy Before:=ThisWorkbook.Sheets(1)
    Next sht
    wb.Close False '<--| close the newly opened workbook without saving it
End Sub

還要注意我改變了:

If LCase(sht.Name) Like "*Sheet1*"

至:

If LCase(sht.Name) Like "*sheet1*"

否則,檢查將永遠不會返回True因為它會將所有小寫字符串( LCase(sht.Name) )與一個大寫字符(“ S”)進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM