Thầy ơi. Em chọn nhập dữ liệu dòng bên phải để nhập vào bên trái . Nhưng e chạy code như bài giảng nó k chạy và k lưu. Thầy xem giúp Em sửa lỗi cho e với
Sub luu_du_lieu_KH()
'Tim dong cuoi Sheet KH
Dim DongCuoi As Long
DongCuoi = Sheets("KHACHHANG").range("C" & Rows.Count).End(xlUp).Row
If Sheets("KHACHHANG").range("C" & i) <> "" Then
With Sheets("KHACHHANG")
.range("B" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("Q4").Value 'ETD
.range("C" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("Q5").Value ' BILL
.range("D" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("Q6").Value ' KH
.range("E" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("E6:E24").Value ' MATHANG
.range("F" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("F6:F24").Value 'SL
.range("G" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("G6:G24").Value ' DV TINH
.range("H" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("H6:H24").Value ' THUE
.range("I" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("I6:I24").Value ' USD
.range("J" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("J6:J24").Value ' VN?
.range("K" & DongCuoi + 1).Value = Sheets("KHACHHANG").rang("K6:K24").Value ' RATE
End With
End Sub
Sub xoa_KH()
Sheets("KHACHHANG").range("T6:T24, U6:U24,V6:V24").ClearContents
End Sub
Sub KH_Close()
' Sheets("KHACHHANG")..Visible = xlSheetHidden
Sheets("DS_KH").Visible = xlSheetVisible
Sheets("DS_KH").Activate
End Sub
Sub KH_Select()
With Sheets("KHACHHANG")
.Visible = xlSheetVisible
.Activate
End With
End Sub
Chào bạn bạn có thể đẩy file lên không?
da thay giong nhu bai giang tren ,
VD: hang 1/ cam 10
hang 2/ tao 100
hang 2/ man 200
thi ben du lieu co cap nhat 3 hang vao ben luu du lieu. em can thay huong dan code nay giup e
Trong đoạn code trên của bạn một số vấn đề như sau:
1.
.range("E" & DongCuoi + 1).Value = Sheets("KHACHHANG").range("E6:E24").Value ' MATHANG
Bạn lưu ý là một vùng cho và vùng nhận phải có kích thước bằng nhau.
Nơi cho là vùng từ dòng 6 tới dòng 24 thì nơi nhận phải có kích thước tương tự, không phải là 1 ô ("E" & DongCuoi + 1)
2.
Nơi cho dữ liệu bạn chưa xác định đúng. Ở đây bạn đều làm việc trên cùng 1 sheet là Sheets("KHACHHANG"), khi đó cột E là cột trong bảng dữ liệu, không phải cột trong phiếu Nhập. Bạn cần xác định lại nơi cho - nơi nhận một cách chính xác.
3. Phiếu nhập bạn nên đặt ở 1 sheet khác, ví dụ sheets("PNK")
Khi đó cần sử dụng vòng lặp để lấy dữ liệu từ Sheets("PNK") sang Sheets("KHACHHANG")
With Sheets("KHACHHANG")
Dim DongCuoi_PNK as long
DongCuoi_PNK = sheets("PNK").Range("A" & Rows.Count).End(xlUp).Row 'ví dụ Cột A là cột làm căn cứ tìm dòng cuối
Dim i as long
For i = 7 to DongCuoi_PNK 'Ví dụ dòng ghi mã hàng đầu tiên trong PNK là dòng 7
.range("B" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("B4").Value 'ETD
.range("C" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("B5").Value ' BILL
.range("D" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("B6").Value ' KH
.range("E" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("A" & i).Value ' MATHANG
.range("F" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("B" & i).Value 'SL
.range("G" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("C" & i).Value ' DV TINH
.range("H" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("D" & i).Value ' THUE
.range("I" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("E" & i).Value ' USD
.range("J" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("F" & i).Value ' VN?
.range("K" & DongCuoi + i-6).Value = Sheets("KHACHHANG").rang("G" & i).Value ' RATE
End With
Thay oi!
E da chuyen sang sheet vaf no chay van bi loi.
Sub LUU_NHAPLIEU()
'Tim dong cuoi Sheet KH
Dim DongCuoi As Long
DongCuoi = Sheets("KHACHHANG").range("C" & Rows.Count).End(xlUp).Row
With Sheets("KHACHHANG")
Dim DongCuoi_NHAPDULIEU As Long
DongCuoi_NHAPDULIEU = Sheets("NHAPDULIEU").range("A" & Rows.Count).End(xlUp).Row 'ví d? C?t A là c?t làm can c? tìm dòng cu?i
Dim i As Long
For i = 12 To DongCuoi_NHAPDULIEU 'Ví d? dòng ghi mã hàng d?u tiên trong PNK là dòng 7
.range("B" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("B4").Value 'ETD
.range("E" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("B5").Value ' BILL
.range("F" & DongCuoi + i - 1).Value = Sheets("NHAPDULIEU").rang("B6").Value ' KH
.range("C" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("E5").Value ' POL
.range("D" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("E6").Value ' POD
.range("G" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("A" & i).Value ' MATHANG
.range("I" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("B" & i).Value 'SL
.range("H" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("C" & i).Value ' DV TINH
.range("L" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("G" & i).Value ' RATE
.range("O" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("D" & i).Value ' THUE
.range("J" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("E" & i).Value ' USD
.range("K" & DongCuoi + i - 11).Value = Sheets("NHAPDULIEU").rang("F" & i).Value ' VN?
.range("K" & DongCuoi + i - 6).Value = Sheets("NHAPDULIEU").rang("G" & i).Value ' RATE
End With
End Sub
Chào bạn bạn xem lại vòng lặp nhé, có for mà không có next.
For i = 7 to DongCuoi_PNK
//code
next i