Sub Macro3()
Dim firstnum As Variant, secnum As Variant
firstnum = Sheets("LookUp").[A176]
secnum = Sheets("LookUp").[B176]
Sheets("Sheet1").Select
lRow = [c65432].End(xlUp).Row
Range("A%firstnum%:A%secnum%").Copy Destination:=Sheets("Sheet2").[A%firstnum%] <--- error 1004
End Sub
Xin các bạn dành chút xíu thơi gian sữa lại đoạn code trên
Sub Macro3()
Dim firstnum As Variant, secnum As Variant
firstnum = Sheets("LookUp").[A176]
secnum = Sheets("LookUp").[B176]
Sheets("Sheet1").Select
lRow = [c65432].End(xlUp).Row
Range("A%firstnum%:A%secnum%").Copy Destination:=Sheets("Sheet2").[A%firstnum%] [COLOR="Blue"]' <--- error 1004[/COLOR]
End Sub
Xin các bạn dành chút xíu thơi gian sữa lại đoạn code trên
Cảm ơn các ban trươc
Bạn xem đoạn Code sau & đối chiếu với những gì của bạn!
PHP:
Option Explicit
Sub Macro35()
1 Dim lRow As Long
Dim SecNum As Range
Set SecNum = Sheets("LookUp").[B16]
4 Sheets("Sheet1").Select
5 lRow = [c65432].End(xlUp).Row
6 Set SecNum = Union(SecNum, Sheets("Lookup").[A16])
SecNum.Copy Destination:=Sheets("Sheet2").[A16]
End Sub
Chào anh Sa_DQ
code
Sub Macro3()
Dim lRow As Long
Dim SecNum As Range, FirstNum As Range
Set FirstNum = Sheets("LookUp").[A176]: MsgBox FirstNum
Set SecNum = Sheets("LookUp").[B176]
Sheets("Sheet2").Select
lRow = [c65432].End(xlUp).Row
Set SecNum = Union(SecNum, Sheets("Lookup").[B176])
Set FirstNum = Union(SecNum, Sheets("Lookup").[B176])
FirstNum.Copy Destination:=Sheets("Sheet2").[A176]
SecNum.Copy Destination:=Sheets("Sheet2").[A176]
End Sub
Bạn xem đoạn Code sau & đối chiếu với những gì của bạn!
PHP:
Option Explicit
Sub Macro35()
1 Dim lRow As Long
Dim SecNum As Range
Set SecNum = Sheets("LookUp").[B16]
4 Sheets("Sheet1").Select
5 lRow = [c65432].End(xlUp).Row
6 Set SecNum = Union(SecNum, Sheets("Lookup").[A16])
SecNum.Copy Destination:=Sheets("Sheet2").[A16]
End Sub
Ang Sa_Dq ơi
chạy code thì không bi chi cả.. nhưng sai ý tôi rối !
Range("A%firstnum%:A%secnum%").Copy Destination:=Sheets("Sheet2").[A%firstnum%] : copy range trong khoảng finủm va secnum
Mong anh giup dở cho trót
Xin Cám ón anh lần nữa.
Ang Sa_Dq ơi
chạy code thì không bi chi cả.. nhưng sai ý tôi rối !
Range("A%firstnum%:A%secnum%").Copy Destination:=Sheets("Sheet2").[A%firstnum%] : copy range trong khoảng finủm va secnum
Mong anh giup dở cho trót.
Đến máy nó còn không hiểu nữa là mình; nên mình đoán mò & viết đoạn Code cho máy hiểu mà thôi;
Sau đây mình diễn dịch đoạn Code của mình; Sau đó bạn cho biết í đồ của bạn;
Mà có khi mình dịch xong đoạn Code của mình, thì bạn sẽ tự sửa đoạn Code của bạn để được như í cũng nên;
Câu lệnh 1 là khai báo 1 biến dạng Long, vì biến này mình & bạn xài để xác định số dòng trong CSDL; mà số dòng có khi vượt quá Integer, nên chắc ăn nhứt là khai báo kiểu Long (Tuy mất thêm 1 ít tài nguyên!)
Câu lệnh 2 của bạn khai báo 2 biến loại Object; Như vậy là phí phạm tài nguyên;
Các biến này làm việc với Range, nên cụ thể ta nên khai báo loại Range mà thôi;
Hơn nữa, mình biết phương thức Union() nên khai 1 biến thôi; Trong trường hợp bạn chưa biết phương thức này, thì nên là:
*/ Để biết thêm về phương thức Union() bạn bấm vô phần từ Union của chữ ký của mình;
*/ Bạn có thể dùng lệnh:
Mã:
Set SecNum = Sheets("LookUp").Range("A176:B176")
chân phương để thay thế;
*/ Câu lệnh 4,5 & 1 nữa, bạn & tôi chưa dùng làm gì cả, bạn hãy cho biết í đồ.
Nói rõ thêm; trên workBook của bạn đang có 3 sheets, 1 sheets thứ 3 có tên, 'LooKup'; còn 2 sheets kia có tên mặc định; Như trong chương trình của bạn thì bạn chép từ ô 'A176:B176' (theo mình hiểu) từ sheets("sheet1") sang ô 'A' tương ứng của Sheets("Sheet2")
(Bạn hãy cho biết mình dịch như vậy đúng í bạn chưa, Thân ái & vui vẽ!)
Sub Macro3()
Dim firstnum As Variant, secnum As Variant
firstnum = Sheets("LookUp").[A176]
secnum = Sheets("LookUp").[B176]
'1--- Hai câu lệnh trên đọc cell A176 và cell B176 ở sheet "loockup", là 2 tham số cho biết ở từ dòng nào ( firstnum) đến dòng nào ( secnum) cần cập nhật (update) cho sheet2 từ sheet1.
'ví dụ "đọc" đươc firstnum=5000 và secnum 5010. ta có A5000 và A5010
'2--- qua sheet1 để copy và paste vào sheet2 ở cell "A_firstnum" (với thí dụ trên là A5000)
Sheets("Sheet1").Select
' với thí du trên code có thể viết : Range(A5000:A5010).Copy Destination:=Sheets("Sheet2").[A5500]
vì không biết nên code : Range("A%firstnum%:A%secnum%").Copy Destination:=Sheets("Sheet2").[A%firstnum%] bị error 1004
'
End Sub
(cũng có khí 2, 3 columns liền nhau)
Xin lổi đã làm mất thòi giờ anh của một ngày chủ nhãt đẹp.
Option Explicit
Sub Macro5()
Dim lRow0 As Long, lRow9 As Long
lRow0 = Sheets("LookUp").[A16]
lRow9 = Sheets("LookUp").[B16]
3 Sheets("Sheet1").Range("A" & lRow0 & ":A" & lRow9).EntireRow.Copy _
Destination:=Sheets("Sheet2").Range("A" & lRow0)
End Sub
Còn đây là phần mình 'khuyến mãi':
Dòng lệnh 3 là chép nguyên các dòng từ 'A' & lRow0 cho đến 'iV" & lRow9 sang sheet2
Nhưng trong thực tế, không cần chép nguyên dòng, mà chỉ cần chép vài chục cột, thậm chí vài cột thôi;
Lúc đó ta sửa lại dòng lệnh 3 cho phù hợp, như sau:
1*/ Nếu chỉ cần chép từ cột 'A' đến cột 'H' thì sẽ là:
Xin phép Bác Sa tí nhé! Căn cứ vào code cũ bị lỗi 1004 và bài giải thích mục đích của MinhK, thì đại khái code cũ của MinhK có thể sửa tí tỉnh như sau:
Mã:
Sub Macro3()
Dim FirstNum As [COLOR=red]Long[/COLOR], SecNum As [COLOR=red]Long[/COLOR], lRow As [COLOR=red]Long[/COLOR]
1 FirstNum = Sheets("LookUp").[A176]
2 SecNum = Sheets("LookUp").[B176]
3 Sheets("Sheet1").Select
4 lRow = Sheets("Sheet2").[A65432].End(xlUp).Row [COLOR=red]+ 1[/COLOR]
5 Range("A" [COLOR=red]&[/COLOR] FirstNum [COLOR=red]&[/COLOR] ":A" [COLOR=red]&[/COLOR] SecNum).Copy Destination:=Sheets("Sheet2").Range("A" [COLOR=red]& lRow[/COLOR])
End Sub
(chỗ màu đỏ là sửa, loại biến là Long theo ý của Bác Sa) Như vậy câu lệnh 3 dùng cho câu lệnh 5, câu lệnh 4 cũng có chỗ dùng.
-----------
Ôi chậm chân rồi!
Cũng xin cảm ơn anh cho thêm 1 câu code. không có gì là "châm mất" vì học biết bao giớ mới xong. Trí óc luôn có chổ chứa cho ..chuyên mới..cũ, không có mới bỏ củ.
Chào anh SA_DQ
qua cac code anh Khuyến Mại có 1 đoạn quan trong :
Sheets("Sheet1").Range("A" & lRow0).Resize(lRow9-lRow0,8).Copy _ Destination:=Sheets("Sheet2").Range("A" & lRow0) ' (Số 8 trong Resize là số cột kể từ ''A'' cần chép)'
Nhu vậy nếu muốn copy/paste thì có thể thêm code gì cho: 1-- fomat 2-- Value 3-- fomulas
Ví dụ: (mong anh đừng cười nhe, chỉ tượng tương mà thối)
Chú hãy nhờ bộ thu ghi lại những cữ chỉ của chú, nha!
Ghi macro với 3 hành vi:
*/ Copy & paste Special =>> Value
*/ Copy & paste Special =>> Formula
*/ Copy & paste Special =>> Formats
Và nghiền ngẫm những gì VBE đưa ra cho chú!
Chúc vui!
Nếu sữ dụng câu này thì dài quá so vói đoạn code Sheets("Sheet1").Range("A" & lRow0).Resize(lRow9-lRow0,8).Copy _ Destination:=Sheets("Sheet2").Range("A" & lRow0)
Đang suy ngẫm.
Có bạn nào giải cứ tôi không nhỉ. (hì hì. Thầy cho bài khó quá)