Hoang Manh Hung
Hoang Manh Hung
Thảo luận 2 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 543 lượt xem

Option ExplicitSub Paste()Dim DongCuoi As Long i As Byte DongCuoi1 As LongDim wb_open As Workbook

Option Explicit

Sub Paste()
Dim DongCuoi As Long, i As Byte, DongCuoi1 As Long
Dim wb_open As Workbook, wb_th As Workbook

Set wb_th = ThisWorkbook
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Show
For i = 1 To .SelectedItems.Count
Set wb_open = Workbooks.Open(.SelectedItems(i))
DongCuoi1 = wb_open.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
wb_open.Worksheets("Sheet1").Range("A2:C" & DongCuoi1).Copy
Workbooks("Book5").Activate
DongCuoi = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
Range("A" & DongCuoi + 1).PasteSpecial xlPasteValues
wb_open.Close savechanges:=False
Next
End With
End Sub


Trong trường hợp sử dụng .copy thay vì .value thì có trường hợp nào có thể xảy ra lỗi không ạ
Thảo luận 2 câu trả lời
Lượt xem 543 lượt xem
Vỗ tay vỗ tay
Hoang Manh Hung 02:04 - Apr 25, 2020
Chào bạn bạn nên thử vào dữ liệu trực tiếp xem có bị lỗi không?
Vỗ tay vỗ tay
Hoang Manh Hung 05:04 - Apr 25, 2020
Cách dùng copy paste thì dễ hiểu code do phù hợp với thao tác thông thường chúng ta hay làm.
Nhưng có 1 nhược điểm là sẽ chạy chậm và khiến excel tốn dung lượng bộ nhớ (nếu phạm vi vùng copy lớn thì sẽ ảnh hưởng nhiều đấy).
Ở đây không xảy ra lỗi, chỉ là hiểu ưu nhược điểm của từng cách rồi vận dụng cách làm phù hợp thôi.
Thường thì khi lập trình người ta hạn chế copy paste mà lấy theo dữ liệu trực tiếp từ range sang range. Việc định dạng sẽ làm trên 1 code riêng, chỉ việc gọi code định dạng ra sau khi đã lấy được dữ liệu.
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
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông