Copy dữ liệu từ file đang đóng

Liên hệ QC

maithanhanhdung

Thành viên mới
Tham gia
16/9/19
Bài viết
1
Được thích
0
Em chào mọi người, e mới tìm hiểu về Vba để giúp công việc được nhanh gọn hơn, e đang tập viết code để copy dữ liệu từ 1 file đang đóng mà bị báo lỗi 424, mọi người có thể chỉ cho e sai chỗ nào không ạ, e cám ơn nhiều ạ

Sub ImportData()
Dim owb As Workbook
Dim lastRow As Integer
Dim sh As Worksheet
Set sh = Sheet1
lastRow = (sh.Cells(sh.Rows.Count, "D").End(xlUp).Row) + 1
Set owb = Workbooks.Open("G:\Programs\tu\BangKe HDDT IN.xlsm")
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
sh.Cells(lastRow, 4).PasteSpecial xlPasteValues
owb.Close False
End Sub
 
Thử thay:

Dim lastRow As Integer

bằng:

Dim lastRow As Long

Vì Excel >= 2007 có hơn 1 triệu dòng.
 
Em chào mọi người, e mới tìm hiểu về Vba để giúp công việc được nhanh gọn hơn, e đang tập viết code để copy dữ liệu từ 1 file đang đóng mà bị báo lỗi 424, mọi người có thể chỉ cho e sai chỗ nào không ạ, e cám ơn nhiều ạ

Sub ImportData()
Dim owb As Workbook
Dim lastRow As Integer
Dim sh As Worksheet
Set sh = Sheet1
lastRow = (sh.Cells(sh.Rows.Count, "D").End(xlUp).Row) + 1
Set owb = Workbooks.Open("G:\Programs\tu\BangKe HDDT IN.xlsm")
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
sh.Cells(lastRow, 4).PasteSpecial xlPasteValues
owb.Close False
End Sub
Bạn thay:
PHP:
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
bằng:
PHP:
LR = owb.Sheets("in").Cells(Rows.Count, "A").End(xlUp).Row
     owb.Sheets("in").Range("A6:V" & LR).Copy
 
Lần chỉnh sửa cuối:
Em chào mọi người, e mới tìm hiểu về Vba để giúp công việc được nhanh gọn hơn, e đang tập viết code để copy dữ liệu từ 1 file đang đóng mà bị báo lỗi 424, mọi người có thể chỉ cho e sai chỗ nào không ạ, e cám ơn nhiều ạ

Sub ImportData()
Dim owb As Workbook
Dim lastRow As Integer
Dim sh As Worksheet
Set sh = Sheet1
lastRow = (sh.Cells(sh.Rows.Count, "D").End(xlUp).Row) + 1
Set owb = Workbooks.Open("G:\Programs\tu\BangKe HDDT IN.xlsm")
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
sh.Cells(lastRow, 4).PasteSpecial xlPasteValues
owb.Close False
End Sub
Cho cái file lên xem nào bạn.Mà code báo lỗi ở dòng nào.Bạn phải nói rõ ra chứ.Đoán mò khó lắm.
Thử thay:

Dim lastRow As Integer

bằng:

Dim lastRow As Long

Vì Excel >= 2007 có hơn 1 triệu dòng.
Em nghĩ chắc không phải lỗi này đâu vì dữ liệu của bạn đó chưa chắc đã đến quá 32000 dòng.Mà lỗi do khai báo thì em thấy nó báo là lỗi 6.
Bạn thay:
PHP:
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
bằng:
PHP:
LR = owb.Sheets("in").Cells(Rows.Count, "A").End(xlUp).Row
     owb.Sheets("in").Range("A6:V" & LR).Copy
Em thây câu lệnh này nó đã chọn vùng rồi mà anh.
Mã:
owb.Sheets("in").Range("A6:V" & LR)
Tại sao còn thêm cái đuôi cho nó nữa vậy anh.
 
Cho cái file lên xem nào bạn.Mà code báo lỗi ở dòng nào.Bạn phải nói rõ ra chứ.Đoán mò khó lắm.

Em nghĩ chắc không phải lỗi này đâu vì dữ liệu của bạn đó chưa chắc đã đến quá 32000 dòng.Mà lỗi do khai báo thì em thấy nó báo là lỗi 6.

Em thây câu lệnh này nó đã chọn vùng rồi mà anh.
Mã:
owb.Sheets("in").Range("A6:V" & LR)
Tại sao còn thêm cái đuôi cho nó nữa vậy anh.
Bạn thử xem 2 dòng sau khác nhau không nhé:
PHP:
Sheets("in").Range("A6:V6").End(xlDown).select

PHP:
 Sheets("in").Range("A6:V" & Sheets("in").Cells(Rows.Count, "A").End(xlUp).Row).select
 
Em chào mọi người, e mới tìm hiểu về Vba để giúp công việc được nhanh gọn hơn, e đang tập viết code để copy dữ liệu từ 1 file đang đóng mà bị báo lỗi 424, mọi người có thể chỉ cho e sai chỗ nào không ạ, e cám ơn nhiều ạ

Sub ImportData()
Dim owb As Workbook
Dim lastRow As Integer
Dim sh As Worksheet
Set sh = Sheet1
lastRow = (sh.Cells(sh.Rows.Count, "D").End(xlUp).Row) + 1
Set owb = Workbooks.Open("G:\Programs\tu\BangKe HDDT IN.xlsm")
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
sh.Cells(lastRow, 4).PasteSpecial xlPasteValues
owb.Close False
End Sub
Em chào mọi người, e mới tìm hiểu về Vba để giúp công việc được nhanh gọn hơn, e đang tập viết code để copy dữ liệu từ 1 file đang đóng mà bị báo lỗi 424, mọi người có thể chỉ cho e sai chỗ nào không ạ, e cám ơn nhiều ạ

Sub ImportData()
Dim owb As Workbook
Dim lastRow As Integer
Dim sh As Worksheet
Set sh = Sheet1
lastRow = (sh.Cells(sh.Rows.Count, "D").End(xlUp).Row) + 1
Set owb = Workbooks.Open("G:\Programs\tu\BangKe HDDT IN.xlsm")
owb.Sheets("in").Range("A6:V6").End(xlDown).Copy
sh.Cells(lastRow, 4).PasteSpecial xlPasteValues
owb.Close False
End Sub
bản chất của end(xl...)
 
Bạn thử xem 2 dòng sau khác nhau không nhé:
PHP:
Sheets("in").Range("A6:V6").End(xlDown).select

PHP:
Sheets("in").Range("A6:V" & Sheets("in").Cells(Rows.Count, "A").End(xlUp).Row).select
Ơ lúc nãy em nhìn thấy thừa cái đuôi ra mà.
 
Web KT

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

Back
Top Bottom