Nguyễn Thư
Nguyễn Thư
Thảo luận 5 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 421 lượt xem

e viết đoạn code cho dữ liệu vào workbook tổng như sau nhưng ko chạy đcDim

Thầy cho E hỏi với ạ, e viết đoạn code cho dữ liệu vào workbook tổng như sau nhưng ko chạy đc
Dim DongCuoi_WB02 As Long
DongCuoi_WB02=Workbooks("book2").Sheets("sheet1").range("A" & Rows.count).end(xlup).row
KhoangCach_WB02=DongCuoi_WB2-2+1
Dim DongCuoi_WB04=Workbooks("book4").sheets("data").range("A"& rows.count).end(xlup).row
Workbooks("book4").sheets("data").range("A" & DongCuoi_WB04 +1
& ":C" & DongCuoi_WB04 + KhoangCach_WB02).value = workbooks("book2").sheets("sheet1").range("A" & DongDau_WB02 & ":C" & DongCuoi_WB02).value
Báo lỗi ở code cuối cùng ạ
Thảo luận 5 câu trả lời
Lượt xem 421 lượt xem
Vỗ tay vỗ tay
Nguyễn Thư 05:04 - Apr 16, 2020
workbooks("book2")
Workbooks("book4")
Không nên dùng trực tiếp như thế này.
Bạn nên đặt biến đại diện cho các workbook này, sau đó viết theo biến sẽ đỡ bị sai. Viết trực tiếp như thế không đúng.
Phải chỉ rõ book2.xlsx hay book2.xlsm? book2 này đã lưu hay chưa, hay mới khởi tạo. Nếu mới khởi tạo thì phải gán biết ngay thời điểm khởi tạo
Vỗ tay vỗ tay
Nguyễn Thư 07:04 - Apr 16, 2020
Thưa thầy e đã sửa lại và chạy đc code này nhưng có phải nếu thêm dữ liệu vào book2 thì book4 bị lặp lại ko?
Vỗ tay vỗ tay
Nguyễn Thư 09:04 - Apr 16, 2020
chú ý nếu chạy tiếp lệnh thì khi đó dòng cuối ở nơi nhận (book4) đã thay đổi rồi, do đó phải tính lại dòng cuối trước, sau đó mới thêm dữ liệu.
Vì vậy bạn chú ý thứ tự sắp xếp các dòng code. Hãy kiểm tra code chạy lần lượt với phím f8 để hiểu rõ hơn vấn đề này
Vỗ tay vỗ tay
Nguyễn Thư 10:06 - Jun 24, 2020
Sub MergeWBs_02()
Workbooks("Book4").Sheets("Data").Range("A2:C4").Value = _
Workbooks("Book1").Sheets("Sheet1").Range("A2:C4").Value
Dim LastRow_WB2 As Long
LastRow_WB2 = Workbooks("Book2").Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
Dim FirstRow_WB2 As Long
FirstRow_WB2 = 2
Dim Distance_WB2 As Long
Distane_WB2 = LastRow_WB2 - FirstRow_WB2 + 1
Dim LastRow_WB4 As Long
LastRow_WB4 = Workbooks("Book4").Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
Workbooks("Book4").Sheets("Data").Range("A" & LastRow_WB4 + 1 & ":C" & LastRow_WB4 + Distance_WB2).Value = _
Workbooks("Book2").Sheets("Sheet1").Range("A" & FirstRow_WB2 & ":C" & LastRow_WB2).Value
End Sub

Em viết code như hướng dẫn nhưng chạy code ra kết quả DongCuoi_WB4 bị sai. Kết quả chỉ ra Long, Thảo, Tuấn, Mai, chứ ko phải Long, Thảo, Linh, Tuấn, Mai.
Nhờ thầy xem giúp em ạ.
Và thầy viết giúp em code gán biến cho WB ạ, em lưu WB là code báo lỗi ạ.
Vỗ tay vỗ tay
Nguyễn Thư 09:06 - Jun 29, 2020
Bạn xem lại tên Workbook, tên Sheet xem đã chính xác chưa nhé (so với file thực tế bạn đang làm).
Ngoài ra Workbook4 cần phải có sẵn dữ liệu (ít nhất là 1 dòng tiêu đề) thì mới xác định được dòng cuối, nếu chưa có dữ liệu thì sẽ bị lỗi.
Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội