Copy/ paste tự động dán vào dòng kế tiếp trong phạm vị xác định trước

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phanngoctrai1981

Thành viên chính thức
Tham gia
16/4/23
Bài viết
60
Được thích
0
Kinh gửi:
Em gặp khó khăn tại đây kính mong các Anh xem chỉ giúp
Yêu cầu là: cứ mỗi lần copy thi dán vào dòng tiếp theo nhưng chỉ trong phạm vị từ dòng A5:A32 (vì đến A32 em đã có dòng tính tổng)

Sub mofile_copy1()
Dim ws As Worksheet, wb As Workbook
Dim Dongcuoi As Long
Dim rng As Range
Dim VungDL As Range
Dim strFile As String
Set rng = Workbooks("Vi du").Sheets("SVR10").Range(Workbooks("Vi du").Sheets("SVR10").Cells(1, 1), Workbooks("Vi du").Sheets("SVR10").Cells(20, 29))
rng.Select
Dongcuoi = Workbooks("Vi du").Sheets("SVR10").Cells(Workbooks("Vi du").Sheets("SVR10").Rows.Count, 1).End(xlUp).Row
'Mo fodel de chon file
strFile = Application.GetOpenFilename()
Workbooks.Open (strFile)
Set wb = Workbooks.Open(strFile)
'Hop thoai chon vùng can copy
Set VungDL = Application.InputBox(Prompt:="Quet vung du lieu can di chuyen", Title:="Thong bao", Type:=8)
VungDL.Copy
'Cac lenh dan vao sheet theo y muon
Dongcuoi = Workbooks("Vi du").Sheets("SVR10").Cells(Workbooks("Vi du").Sheets("SVR10").Rows.Count, 1).End(xlUp).Row + 1
Workbooks("Vi du").Sheets("SVR10").Range("A" & Dongcuoi).PasteSpecial Paste:=xlPasteValues
wb.Close ' Lenh dong file
End Sub
 

File đính kèm

  • Tong hop.xlsx
    9.1 KB · Đọc: 5
  • Vi du.xlsm
    20.8 KB · Đọc: 5
Nhìn câu lệnh thấy ớn thiệt.
1. Tại sao không gán Workbooks("Vi du") vào biến để dùng cho tiện mà mỗi lần xài là phải viết nguyên nó ra.
2. Ở trên lấy dòng cuối rồi mà không xài, để xuống dưới lấy dòng cuối một lần nữa (chỉ khác là + 1).
3. Đã Workbooks.Open (strFile) rồi lại
Set wb = Workbooks.Open(strFile) tiếp. Lẽ ra chỉ Set wb = Workbooks.Open(strFile) thôi.

Bây giờ mới trả lời câu hỏi lấy dòng cuối. Ngay từ đầu viết luôn là dongcuoi = Sheets("SVR10").Range("A32").End(xlUp).Row + 1. Bỏ cái dongcuoi = bên dưới đi.
 
Upvote 0
Nhìn câu lệnh thấy ớn thiệt.
1. Tại sao không gán Workbooks("Vi du") vào biến để dùng cho tiện mà mỗi lần xài là phải viết nguyên nó ra.
2. Ở trên lấy dòng cuối rồi mà không xài, để xuống dưới lấy dòng cuối một lần nữa (chỉ khác là + 1).
3. Đã Workbooks.Open (strFile) rồi lại
Set wb = Workbooks.Open(strFile) tiếp. Lẽ ra chỉ Set wb = Workbooks.Open(strFile) thôi.

Bây giờ mới trả lời câu hỏi lấy dòng cuối. Ngay từ đầu viết luôn là dongcuoi = Sheets("SVR10").Range("A32").End(xlUp).Row + 1. Bỏ cái dongcuoi = bên dưới đi.
Ok, hay quá đúng ý em rồi ạ (Chổ đó em cứ lây hoay mãi không được anh ạ, đúng là. Không thầy đố mày làm nên)
Cảm ơn Anh rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom