Em chạy code để gộp dữ liệu, nhưng khi dùng Sheet code name thì lỗi ko chạy được, nhưng nếu đổi sang Sheet Name thì chạy được . Nhờ Thầy/cô hỗ trợ giúp nếu muốn viết theo Sheet codename. Chi tiết đoạn code bên dưới
Sub Tong_Hop_Giu_Lieu2()
'Mo thu muc, chon file,gop vao 1 file
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Show 'Hien cua so chon file
'Xac dinh file nào duoc chon
Dim i As Long
For i = 1 To .SelectedItems.Count
'Gan bien cho cac WB
Dim WB_KQ As Workbook
Dim WB_Select As Workbook
Set WB_KQ = ThisWorkbook
Set WB_Select = Workbooks.Open(.SelectedItems(i))
'Tim du lieu tu các WB Data
Dim DongCuoi_Select As Long
DongCuoi_Select = WB_Select.Sheet1.Range("F" & Rows.Count).End(xlUp).Row
Dim DongDau_Select As Long
DongDau_Select = 8
Dim KhoangCach_Select As Long
KhoangCach_Select = DongCuoi_Select - DongDau_Select + 1
'Tim Dong cuoi noi nhan
Dim DongCuoi_KQ As Long
DongCuoi_KQ = WB_KQ.Sheet6.Range("F" & Rows.Count).End(xlUp).Row
'Gan Du Lieu
WB_KQ.Sheet6.Range("A" & DongCuoi_KQ + 1 & ":BM" & DongCuoi_KQ + KhoangCach_Select).Value = _
WB_Select.Sheet1.Range("A" & DongDau_Select & ":BM" & DongCuoi_Select).Value
'Dong WB lai
WB_Select.Close savechanges:=False
Next i
End With
End Sub
Khi viết mà có kèm theo workbook thì đối tượng worksheet phải viết ở dạng Sheet-Name chứ không viết ở dạng Sheet-codeName. Đây là quy định trong VBA rồi nên phải tuân thủ thôi bạn nhé. Nếu không có kèm workbook thì viết thế nào cũng được.
Hi Thầy nếu wb4 là wb cần đưa dữ liệu vào luôn ở dạng close thì làm sao để chuyển dữ liệu từ wb1, wb2 thành viên vào wb4 được ah, wb1,wb 2 sẽ mở ra làm việc hàng ngày? nhờ thầy hướng dẫn
Trong code trên, bạn luôn đặt 1 lệnh open wb4 lên. Sau đó mới làm việc với wb này. Làm việc xong ở cuối câu lệnh bạn viết lệnh đóng wb4 lại.
Hình dung là khi muốn làm việc với wb khác, bạn luôn phải mở wb đó ra mới làm việc được. Dùng xong thì đóng lại để chỉ hiển thị wb đang làm việc thôi (là wb1, wb2)
Hi Thầy : Vậy phần viết code là mình viết trên wb thành viên (wb1; wb2) đúng ko ah? vì wb4 luôn đóng, chỉ khi cần report thì mới mở ra để kt thôi ah.
và phiền thầy có thể chỉ thêm giúp em: nếu em muốn mã Bin/bag nào đã chuyển đi rồi thì tương ứng với nó sẽ gán chữ “ No” thì mình viết code sao được ah?
VB: thay vì nhập trực tiếp - thì viết code sao ở sheet bên ngoài để gán “ No” vào sheet data này ah? => Em cảm ơn thầy nhiều!