Sao chép một trang tính từ mỗi sổ làm việc vào sổ làm việc của bạn trong một thư mục bằng VBA trong Microsoft Excel
-
Macro sẽ sao chép một phần của trang tính đầu tiên của mọi tệp nằm trong thư mục C: \ Data vào trang tính đầu tiên trong sổ làm việc của bạn.
-
Macro đầu tiên thực hiện sao chép bình thường và macro thứ hai sao chép các giá trị.
Nó sẽ sao chép trang tính đầu tiên của mỗi sổ làm việc vào sổ làm việc có mã.
Tên trang tính là tên của sổ làm việc.
Sub CopySheet() Dim basebook As Workbook Dim mybook As Workbook Dim i As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Then Set basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open(.FoundFiles(i)) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) ActiveSheet.Name = mybook.Name mybook.Close Next i End If End With Application.ScreenUpdating = True End Sub
Đối với phụ này (TestFile4_values), bạn phải có các trang tính không được bảo vệ hoặc bỏ bảo vệ chúng trong mã.
Sub CopySheetValues() Dim basebook As Workbook Dim mybook As Workbook Dim i As Long Application.ScreenUpdating = False With Application.FileSearch .NewSearch .LookIn = "C:\Data" .SearchSubFolders = False .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Then Set basebook = ThisWorkbook For i = 1 To .FoundFiles.Count Set mybook = Workbooks.Open(.FoundFiles(i)) mybook.Worksheets(1).Copy after:= _ basebook.Sheets(basebook.Sheets.Count) ActiveSheet.Name = mybook.Name With ActiveSheet.UsedRange .Value = .Value End With mybook.Close Next i End If End With Application.ScreenUpdating = True End Sub