Option ExplicitSub import_data()
Dim master As Worksheet, sh As Worksheet
Dim wk As Workbook
Dim iFileNum As Integer, iLastRowReport As Integer, iNumberOfRowsToPaste As Integer
Dim strFileName As String
Dim rShThua As Range, rTenChu As Range, rDiaChiThuaDat As Range, rDiaChiCSD As Range, rMDSD As Range, rDientich As Range
Dim rDienTichThuHoi As Range, rToBanDo As Range, rDTMuonTam As Range
Dim iCurrentLastRow As Integer, iRowStartToPaste As Integer
Set master = ActiveWorkbook.Sheets("thongke")
Set sh = ActiveWorkbook.Sheets("sheet1")
With master
iLastRowReport = .Range("A" & Rows.Count).End(xlUp).Row
iNumberOfRowsToPaste = iLastRowReport - 6 + 1
Set rShThua = .Range("F6:f" & iLastRowReport)
Set rTenChu = .Range("b6:b" & iLastRowReport)
Set rDiaChiThuaDat = .Range("d6:d" & iLastRowReport)
Set rDiaChiCSD = .Range("c6:c" & iLastRowReport)
Set rMDSD = .Range("H6:H" & iLastRowReport)
Set rDientich = .Range("g6:g" & iLastRowReport)
Set rDienTichThuHoi = .Range("I6:i" & iLastRowReport)
Set rToBanDo = .Range("e6:e" & iLastRowReport)
With sh
iCurrentLastRow = .Range("A" & Rows.Count).End(xlUp).Row
iRowStartToPaste = iCurrentLastRow + 1
.Range("A" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rShThua.Value2
.Range("B" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rTenChu.Value2
.Range("D" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDiaChiThuaDat.Value2
.Range("E" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDiaChiCSD.Value2
.Range("F" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rMDSD.Value2
.Range("g" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDientich.Value2
.Range("i" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDienTichThuHoi.Value2
.Range("n" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rToBanDo.Value2
End With
End With
End Sub
cảm ơn bạn đã giúp đỡ, nhưng nó thiếu 1 cột TObando rồi, cho mình hỏi thêm sao mình nhập thêm 1 hàng ở CSDL sao nó k tự động cập nhật sang bên bảng Tke nhỉ... có thể thêm code để nó thêm hoặc tự xóa đi khi ta thay đổi ở CSDL k?Bạn tham khảo file này:
(1) Cột [Tở BanDo] chỉ có ở trang mà mình đổi tên thành 'Luu'; Trang hiện có tên là 'TKe' bạn để trống cột cột [E:E] mà; Do bạn, nên bạn tự mà tìm cách khắc fục thôi!. . , (1) nhưng nó thiếu 1 cột TObando rồi, (2)cho mình hỏi thêm sao mình nhập thêm 1 hàng ở CSDL sao nó k tự động cập nhật sang bên bảng Tke nhỉ... có thể thêm code để nó thêm hoặc tự xóa đi khi ta thay đổi ở CSDL k?
(3) À thêm nữa trong code bạn có thể ghi rõ nó là gì giúp mình đc k? mình đọc k hiểu lắm do mới làm quen sơ sơ à, thanks bạn
mình đã tìm ra được chỗ thiếu ToBanDO rồi, cơ mà còn bị giới hạn dòng.... bạn chỉ mình cách khắc phục chỗ đó với được k, thánk bạn(1) Cột [Tở BanDo] chỉ có ở trang mà mình đổi tên thành 'Luu'; Trang hiện có tên là 'TKe' bạn để trống cột cột [E:E] mà; Do bạn, nên bạn tự mà tìm cách khắc fục thôi!
(2) Bạn fải nêu rõ là thêm vô bao nhiêu dòng, & cụ thể là dòng số bao nhiêu?
Dù gì chăng nữa, không thể vượt quá 599 dòng.
(3) Chờ đến thứ hai, nha! Mai đi công chuyện ở ĐN rồi!
CÁM ƠN BẠN, MÌNH ĐÃ SỬA ĐƯỢC THEO CÁI (1) CỦA BẠN RỒI HIHICó các cách khắc fục về giới hạn về số dòng dữ liệu trong trang 'TKe' với độ khó tăng dần như sau
(1) Dời các dòng từ 600 đến 620 xuống dòng 6500
Sau đó sửa lại code để nó ẩn 1 lô 1 lốc các dòng trống đi;
Cách này bạn có thể thử làm trước xem sao.
(2) Dòi dòng 600 đến 620 lên trên; bố trí dưới ngay tiêu đề (Từ dòng 4 đến dòng 24;
Lúc đó ta đẩy dòng tiêu đề (Dòng 5 hiện nay) xuống dòng 32 hay 35 gì đó
(3) Dòng 600 đến dòng 620 sẽ được copy từ 1 nơi cố định nào đó (xa xăm & khuất mắt) đến bằng các dòng lệnh VBA sau khi chạy macro hiện có
(4) Tạo dữ liệu từ dòng 600 đến dòng 620 bằng VBA
(5) . . . .