Viết code như thế nào để lên dòng đầu rồi xuống dòng dưới

Liên hệ QC

hoangtechu

Thành viên hoạt động
Tham gia
8/7/11
Bài viết
105
Được thích
48
Dear các anh chị GPE
Em đang học record macro nhờ anh chị giúp chỗ này ạ
em muốn lên dòng đầu tiên có dữ liệu - dùng Ctrl+ mũi tên đi lên
sau đó xuống 1 dòng và lập công thức . code của em như sau:
Sub Macro6()
'
' Macro6 Macro
'

'
Range("B14").Select
Selection.End(xlUp).Select
Range("End(xlUp)+1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R2C7:R9C8,2,0)"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B5")
Range("B2:B5").Select
End Sub
em biết nó bị sai ở dòng bôi đen nhưng không biết sửa như thế nào.
các anh chị giúp em với ạ

thanks all
 

File đính kèm

Dear các anh chị GPE
Em đang học record macro nhờ anh chị giúp chỗ này ạ
em muốn lên dòng đầu tiên có dữ liệu - dùng Ctrl+ mũi tên đi lên
sau đó xuống 1 dòng và lập công thức . code của em như sau:
Sub Macro6()
'
' Macro6 Macro
'

'
Range("B14").Select
Selection.End(xlUp).Select
Range("End(xlUp)+1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R2C7:R9C8,2,0)"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B5")
Range("B2:B5").Select
End Sub
em biết nó bị sai ở dòng bôi đen nhưng không biết sửa như thế nào.
các anh chị giúp em với ạ

Cảm ơn all
Bạn cần đọc tài liệu về VBA căn bản trước nhé & tham khảo:
PHP:
Sub Vlookup_abc()
    Dim LR As Long
    LR = Sheets(1).Range("A65000").End(3).Row
    With Range("B2:B" & LR)
        .Formula = "=VLOOKUP($A2,$G$2:$H$9,2,FALSE)"
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn cần đọc tài liệu về VBA căn bản trước nhé & tham khảo:
PHP:
Sub Vlookup_abc()
    Dim LR As Long
    LR = Sheets(1).Range("A65000").End(3).Row
    With Range("B2:B" & LR)
        .Formula = "=VLOOKUP($A2,$G$2:$H$9,2,TRUE)"
    End With
End Sub
Xuống 1 dòng nữa bạn ơi.
 
Upvote 0
Mục đích của bạn ấy là: "sau đó xuống 1 dòng và lập công thức . code của em như sau:"
vâng,
em muốn lên dòng đầu tiên có dữ liệu - dùng Ctrl+ mũi tên đi lên
sau đó xuống 1 dòng và lập công thức . ví dụ như lên dòng đầu tiên có dữ liệu là B2, sau đó xuống B3 thì viết thế nào ạ?
 
Upvote 0
vâng,
em muốn lên dòng đầu tiên có dữ liệu - dùng Ctrl+ mũi tên đi lên
sau đó xuống 1 dòng và lập công thức . ví dụ như lên dòng đầu tiên có dữ liệu là B2, sau đó xuống B3 thì viết thế nào ạ?
Bạn áp dụng code #2 chưa? code đó là ngắn gọn và chuẩn rồi.

Còn nếu vẫn dựa trên code của bạn thì nó như thế này(nhưng không nên làm như thế vì thừa)
dim dongcuoi
Range("B14").Select
dongcuoi = Selection.End(xlUp).row
Range("B" & dongcuoi +1).Select
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn áp dụng code #2 chưa? code đó là ngắn gọn và chuẩn rồi.

Còn nếu vẫn dựa trên code của bạn thì nó như thế này(nhưng không nên làm như thế vì thừa)
dim dongcuoi
Range("B14").Select
dongcuoi = Selection.End(xlUp).row
Range("B" & dongcuoi +1).Select
vâng , em cảm ơn ạ,
em mới học nên không hiểu,
anh có thể giải thích giúp em dòng này là như thế nào được không ạ:
LR = Sheets(1).Range("A65000").End(3).Row
 
Upvote 0
vâng , em cảm ơn ạ,
em mới học nên không hiểu,
anh có thể giải thích giúp em dòng này là như thế nào được không ạ:
LR = Sheets(1).Range("A65000").End(3).Row
Bạn làm như sau:
1.Vào cửa sổ Immediate
2. Nhập dòng:
PHP:
Sheets(1).Range("A65000").End(3).select
rồi Enter 1 phát, quay lại bảng tính xem nó chọn gì nhé.
 
Upvote 0
vâng , em cảm ơn ạ,
em mới học nên không hiểu,
anh có thể giải thích giúp em dòng này là như thế nào được không ạ:
LR = Sheets(1).Range("A65000").End(3).Row
Nó là dòng cuối có dữ liệu cột A - sheet1

Hiểu chi tiết là như thế này: Tại ô A65000 bạn ấn ctrl + mũi tên lên thì nó sẽ chọn ô có dữ liệu cuối (ví dụ A100), phần .row là xác định xem ô đó là dòng bao nhiêu (ở ví dụ là dòng 100)
 
Upvote 0
Bạn làm như tôi nói, nó sẽ chọn A5, như hình dưới

View attachment 204026
xin cảm ơn anh( chị ) nhé.
Tiện đây cho em hỏi thêm cái này nữa ạ.
chắc anh cũng đoán được trình độ của em gà lắm ạ. em muốn tìm mua sách để học mà không biết mua sách nào , ở đâu.
anh cho em lời khuyên với nhé.
Bài đã được tự động gộp:

Nó là dòng cuối có dữ liệu cột A - sheet1

Hiểu chi tiết là như thế này: Tại ô A65000 bạn ấn ctrl + mũi tên lên thì nó sẽ chọn ô có dữ liệu cuối (ví dụ A100), phần .row là xác định xem ô đó là dòng bao nhiêu (ở ví dụ là dòng 100)
vâng ạ,
nhưng sao lại ghi
LR = Sheets(1).Range("A65000").End(3).Row
End(3) mà nó hiểu là dòng cuối dữ liệu ạ? số 3 ở đây là như nào anh nhỉ?
 
Upvote 0
xin cảm ơn anh( chị ) nhé.
Tiện đây cho em hỏi thêm cái này nữa ạ.
chắc anh cũng đoán được trình độ của em gà lắm ạ. em muốn tìm mua sách để học mà không biết mua sách nào , ở đâu.
anh cho em lời khuyên với nhé.
Bài đã được tự động gộp:


vâng ạ,
nhưng sao lại ghi
LR = Sheets(1).Range("A65000").End(3).Row
End(3) mà nó hiểu là dòng cuối dữ liệu ạ? số 3 ở đây là như nào anh nhỉ?
số 3 viết code tường minh là xlup. Bạn mới học thì khi gõ End( xl rồi ctrl + space thì nó sẽ gợi ý cho bạn 1 số tùy chọn tùy theo mục đích của mình: xlup, xldown...
Bình thường xác định dòng cuối người ta thường dùng là đi từ ô cuối lên trên (xlup) chứ không từ trên xuống dưới (xldown) vì có thể trong vùng dữ liệu của bạn có 1 ô trắng)
 
Upvote 0
Có nhất thiết phải có 2 điều kiện đó không bác Be09 ?
Thêm dấu chấm hỏi ( ? ) phía trước câu lệnh mục đích để nó nhận xét câu lệnh.
Nếu chọn dòng trống để nhập liệu tiếp theo thì phải thêm Offset(1), cột A trống không có dữ liệu thì việc nhập liệu có thể sai khi từ cột B đã có sẳn dữ liệu.

Mã:
Sheets(1).Range("A65000").End(xlUp).Offset(1).Select

A_Hinh.JPG
 
Lần chỉnh sửa cuối:
Upvote 0
xin cảm ơn anh( chị ) nhé.
Tiện đây cho em hỏi thêm cái này nữa ạ.
chắc anh cũng đoán được trình độ của em gà lắm ạ. em muốn tìm mua sách để học mà không biết mua sách nào , ở đâu.
anh cho em lời khuyên với nhé.
Bạn đã nói vậy thì tôi xin được có đôi lời với bạn, đó là bạn cần theo học 1 lớp VBA căn bản nào đó.
Khi bạn đã có kiến thức cơ bản nhất định, bạn có thể hiểu được Code do người khác viết, rồi sẽ ngộ ra nhiều vấn đề...
Nhưng nói gì thì nói, điều quan trọng nhất là bạn phải yêu thích nó(VBA). Bạn phải thấy được cái hay, cái đẹp trong mỗi Code.
Còn nếu bạn muốn mua sách tự nghiên cứu, thì có cuốn "Lập trình VBA trong Excel cho người mới bắt đầu" của tác giả Phan Tự Hướng
Chúc bạn thành công!
 
Upvote 0
Bạn đã nói vậy thì tôi xin được có đôi lời với bạn, đó là bạn cần theo học 1 lớp VBA căn bản nào đó.
Khi bạn đã có kiến thức cơ bản nhất định, bạn có thể hiểu được Code do người khác viết, rồi sẽ ngộ ra nhiều vấn đề...
Nhưng nói gì thì nói, điều quan trọng nhất là bạn phải yêu thích nó(VBA). Bạn phải thấy được cái hay, cái đẹp trong mỗi Code.
Còn nếu bạn muốn mua sách tự nghiên cứu, thì có cuốn "Lập trình VBA trong Excel cho người mới bắt đầu" của tác giả Phan Tự Hướng
Chúc bạn thành công!
em học excel cũng lâu rồi anh ạ, và em biết VBA rất hay nhưng không hiểu được.
Em cũng rất muốn theo một lớp học VBA nhưng em ở tỉnh lẻ ( Bắc Ninh ạ) nên tìm sách học cũng khó chứ nói gì đến lớp. Hôm qua chủ nhật em cũng lăn lộn hết thành Phố Bắc Ninh mà không mua được 1 cuốn sách nào.
em cũng học trên youtube nữa nhưng chưa tìm được trang nào hệ thống ạ.
anh có thể để lại cho em cuốn sách
Lập trình VBA trong Excel cho người mới bắt đầu" của tác giả Phan Tự Hướng được không ạ?
Với lại anh có dạy online được thì em xin cảm ơn rất nhiều !
 
Upvote 0
Web KT

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

Back
Top Bottom