Copy dữ liệu giữa các workbook bằng VBA code

Liên hệ QC

ngocbinh.no.kia

Thành viên mới
Tham gia
25/1/11
Bài viết
42
Được thích
2
Đang soạn code để copy dữ liệu giữa 2 file excel, chạy báo lỗi, nhờ anh em kiểm tra giúp Code, xin cảm ơn!
Sub XUAT_Excel_HD()
Dim sh As Worksheet
Set sh = ActiveSheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim FileExcel As String
FileExcel = ThisWorkbook.Path & "\" & "BIEU.xlsx"
sh.Range("A1:E10").Select
Selection.Copy

Dim nwb As Workbook

Set nwb = Workbooks.Add
Set nwb = ActiveWorkbook
nwb.Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteColumnWidths
nwb.Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteAll

' Quay lai file trước để copy tiếp
wb.sh.Range("A12:D10").copy

Dim lr As Long
Lr = nwb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

' Chuyển sang file BIEU.XLSX để dán dữ liệu
nwb.Sheets(1).Range("A" & lr).PasteSpecial Paste:=xlPasteAll
nwb.Sheets(1).Range("A1").Select

nwb.SaveAs FileExcel
nwb.Close False

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Lỗi: Run-time error '438' Object doesn't support this property or method

Do tên file bằng tiếng việt và tên có thể thay đổi nên không sử dụng windows("tiếng việt.xlsm").active để tránh lỗi khi chạy code
 

File đính kèm

  • Dữ liệu mẫu.xlsm
    18.3 KB · Đọc: 11
Lần chỉnh sửa cuối:
Đang soạn code để copy dữ liệu giữa 2 file excel, chạy báo lỗi, nhờ anh em kiểm tra giúp Code, xin cảm ơn!
Sub XUAT_Excel_HD()
Dim sh As Worksheet
Set sh = ActiveSheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim FileExcel As String
FileExcel = ThisWorkbook.Path & "\" & "BIEU.xlsx"
sh.Range("A1:E10").Select
Selection.Copy

Dim nwb As Workbook

Set nwb = Workbooks.Add
Set nwb = ActiveWorkbook
nwb.Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteColumnWidths
nwb.Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteAll

' Quay lai file trước để copy tiếp
wb.sh.Range("A12:D10").copy

Dim lr As Long
Lr = nwb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

' Chuyển sang file BIEU.XLSX để dán dữ liệu
nwb.Sheets(1).Range("A" & lr).PasteSpecial Paste:=xlPasteAll
nwb.Sheets(1).Range("A1").Select

nwb.SaveAs FileExcel
nwb.Close False

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Lỗi: Run-time error '438' Object doesn't support this property or method

Do tên file bằng tiếng việt nên không sử dụng windows("tiếng việt").active
Bạn gửi cái file lên xem đi, để thử xem thuộc tính hay phương thức nào mà đối tượng nó không hỗ trợ. Tiếng Việt hay tiếng Anh gì nó cũng làm ráo trọi hết á, không phải do cách đặt tên file đâu, ngoại trừ các ký tự đặc biệt mà hệ thống nó không cho đặt.
 
Upvote 0
Đang soạn code để copy dữ liệu giữa 2 file excel, chạy báo lỗi, nhờ anh em kiểm tra giúp Code, xin cảm ơn!
Sub XUAT_Excel_HD()
Dim sh As Worksheet
Set sh = ActiveSheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim FileExcel As String
FileExcel = ThisWorkbook.Path & "\" & "BIEU.xlsx"
sh.Range("A1:E10").Select
Selection.Copy

Dim nwb As Workbook

Set nwb = Workbooks.Add
Set nwb = ActiveWorkbook
nwb.Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteColumnWidths
nwb.Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteAll

' Quay lai file trước để copy tiếp
wb.sh.Range("A12:D10").copy

Dim lr As Long
Lr = nwb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

' Chuyển sang file BIEU.XLSX để dán dữ liệu
nwb.Sheets(1).Range("A" & lr).PasteSpecial Paste:=xlPasteAll
nwb.Sheets(1).Range("A1").Select

nwb.SaveAs FileExcel
nwb.Close False

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Lỗi: Run-time error '438' Object doesn't support this property or method

Do tên file bằng tiếng việt nên không sử dụng windows("tiếng việt").active
Nêu lỗi thì ngoài mô tả lỗi bạn còn phải cho biết lỗi ở dòng nào. Code dán như rừng vậy đâu mắt nào dõi theo nổi.
 
Upvote 0
Đọc mà chưa hiểu code đó bạn?
Mở file BIEU, chọn vùng rồi lại paste vào chính 1 sheet khác?
 
Upvote 0
Đọc mà chưa hiểu code đó bạn?
Mở file BIEU, chọn vùng rồi lại paste vào chính 1 sheet khác?
Ý của mình là: Copy 2 vùng dữ liệu từ 1 file rồi tạo một file mới past 2 vùng dữ liệu đó vào 1 sheet trong file mới;
Bài đã được tự động gộp:

Bạn gửi cái file lên xem đi, để thử xem thuộc tính hay phương thức nào mà đối tượng nó không hỗ trợ. Tiếng Việt hay tiếng Anh gì nó cũng làm ráo trọi hết á, không phải do cách đặt tên file đâu, ngoại trừ các ký tự đặc biệt mà hệ thống nó không cho đặt.
Minh upfile rồi; bạn qua xem giúp.
 
Lần chỉnh sửa cuối:
Upvote 0
Ý của mình là: Copy 2 vùng dữ liệu từ 1 file rồi tạo một file mới past 2 vùng dữ liệu đó vào 1 sheet trong file mới;
Bài đã được tự động gộp:


Minh upfile rồi; bạn qua xem giúp.
Rất đơn giản nha, cái câu này:

Mã:
wb.sh.Range("A14:D23").Copy

Bạn vui lòng xóa wb. đi là xong!

PHP:
sh.Range("A14:D23").Copy
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom