hongphuong1997
Thành viên tiêu biểu
- Tham gia
- 12/11/17
- Bài viết
- 771
- Được thích
- 321
- Giới tính
- Nữ
Bạn nhờ mà không nêu rõ vấn đề, ví dụ thì trên trời, dưới đất.Nhờ các bác viết giúp code copy và đánh số thứ tự như file cháu đính kèm bên dưới
Cháu nói rõ rùi đấy bác @be09 tức là copy mảng bên sheet1 sang dòng cuối của sheet2 và đánh số thứ tự ở cột A bác àBạn nhờ mà không nêu rõ vấn đề, ví dụ thì trên trời, dưới đất.
- Copy vùng A3-O5 là bao nhiêu dòng (xem lại ví dụ Sheet2 để hiểu).
Bạn thử code sau:Nhờ các bác viết giúp code copy và đánh số thứ tự như file cháu đính kèm bên dưới
Sub CopyQuaSheet2()
Dim Cll As Range
With Sheet2
Set Cll = .[A1].Offset(.UsedRange.Rows.Count)
Cll = .[A65000].End(xlUp) + 1
Sheet1.[A1].CurrentRegion.Copy Cll.Offset(, 1)
End With
End Sub
Vẫn chưa đúng anh ui, nó copy thiếu mất 1 dòng anh àBạn thử code sau:
Mã:Sub CopyQuaSheet2() Dim Cll As Range With Sheet2 Set Cll = .[A1].Offset(.UsedRange.Rows.Count) Cll = .[A65000].End(xlUp) + 1 Sheet1.[A1].CurrentRegion.Copy Cll.Offset(, 1) End With End Sub
Bạn xóa dòng trống đầu tiên ở sheet2 là sẽ ổn.Vẫn chưa đúng anh ui, nó copy thiếu mất 1 dòng anh à
Set Cll = .[A1].Offset(.UsedRange.Rows.Count)
Set Cll = .[B65000].End(xlUp).Offset(1, -1)
Trình độ chỉ được đến thế thôi bác ạ.Chủ thớt kêu A3-O5, nhưng bên sheet 2 thì...
Usedrange với currentregion là tèo téo teo, mà còn oánh dấu lần sao chép vào cột A...
Nói chung chẳng bài nào ra mì xào%$*, trừ bài #2.
Em không dám đâu.Trình độ chỉ được đến thế thôi bác ạ.
Bài 3 là thế này:Em không dám đâu.
Sau bài #2 và #3 mà anh vẫn làm được thì em chỉ dám xách dép cho anh thôi.
Nếu giả sử chủ thớt gõ nhầm, không phải "Copy vùng A3-O5 sang sheet2" mà là "Copy vùng A1-O5 sang sheet2" hoặc "Copy vùng dữ liệu ở sheet1 sang sheet2" thì theo bác phải xử lý ra sao?Cháu nói rõ rùi đấy bác @be09 tức là copy mảng bên sheet1 sang dòng cuối của sheet2 và đánh số thứ tự ở cột A bác à
Chết chết thật, em bị nhầm mất anh @befaint copy từ A1-O5 sang dòng cuối của sheet2 và đánh số thứ tự ở cột A sheet2.Chủ thớt kêu A3-O5, nhưng bên sheet 2 thì...
Usedrange với currentregion là tèo téo teo, mà còn oánh dấu lần sao chép vào cột A...
Nói chung chẳng bài nào ra mì xào%$*, trừ bài #2.
Là nhầm đó bácSheet1 Copy vùng A3-O5 là 3 dòng, Sheet2 thể hiện 5 dòng là sao?
Hi hi.... lúc bác hỏi cháu, cháu không xem lại bác ui, bây giờ cháu mới xem lại thì do cháu đánh bị sai bác @be09 ui, cháu sửa lại rùi là copy từ A1:O5 bác à.Sheet1 Copy vùng A3-O5 là 3 dòng, Sheet2 thể hiện 5 dòng là sao?
Em đã đính chính lại rùi mà,Chủ thớt muốn lấy vùng dữ liệu ở cột A-O, tới dòng cuối nào thì cần xác định.
Chủ thớt nên đưa dữ liệu có tiêu đề cụ thể để xác định cột nào từ A-O là cột luôn có dữ liệu.
Trong trường hợp tổng quát, viết một hàm xác định dòng cuối có dữ liệu trong vùng thuộc cột A-O, gán vùng vừa xác định vào một biến mảng a.
. Bên sheet gán kết quả, cũng xác định dòng cuối có dữ liệu thuộc cột B-P, rồi gán mảng a vào. Và điền số thứ tự vào cột A tương ứng (=max lần trước + 1).
Cứ theo những gì có trong file của bạn thì code ở bài #4 và phần đề xuất sửa ở bài #6 là giải quyết được rồi đấy. Bạn cứ sửa như vậy và chạy thử xem nào. Code tôi viết toàn bị chê vì thực tế là tôi toàn cóp nhặt, bắt chước thôi chứ chẳng được học hành gì về món này cả.Em đã đính chính lại rùi mà,
Tức là copy từ A1:O5 sang sheet2 cứ mỗi lần copy thì dán xuống dòng cuối của lần trước.
Em gửi lại file anh xem giúp nhé.
Thử:Em đã đính chính lại rùi mà,
Tức là copy từ A1:O5 sang sheet2 cứ mỗi lần copy thì dán xuống dòng cuối của lần trước.
Em gửi lại file anh xem giúp nhé.
Sub abc()
Dim LR&, i&
LR = Sheets("Sheet2").Range("B60000").End(xlUp).Row + 1
Sheets("sheet1").Range("A1:O5").Copy Sheets("Sheet2").Range("B" & LR)
k = 1
For i = 2 To LR Step 5
Range("A" & i) = k
k = k + 1
Next
End Sub
Khi sử dụng nên có tiêu đề cho giống File thực tế (sẽ tránh được nhằm lẫn trong việc nhập liệu).Em đã đính chính lại rùi mà,
Tức là copy từ A1:O5 sang sheet2 cứ mỗi lần copy thì dán xuống dòng cuối của lần trước.
Em gửi lại file anh xem giúp nhé.