[英]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.