Cách lấy địa chỉ ô để điền vào công thức trong VBA

Liên hệ QC

Thanhhoai00

Thành viên chính thức
Tham gia
19/7/20
Bài viết
58
Được thích
13
Mình có đoạn code như sau, mình đang gặp lỗi ở chỗ mỗi lần thêm dữ liệu vào cột B thì cột C không lấy được địa chỉ (address) của cột B để bỏ vào cột C:
ví dụ:
  • Nếu Dữ liệu mới được thêm vào Cột B2 thì cột C2 sẽ ghi vào là: =Pheptinhgido(B2) 'B2 là address
  • Tương tự như thế
  • Nếu Dữ liệu mới được thêm vào Cột B3 thì cột C3 sẽ ghi vào là: =Pheptinhgido(B3)
  • Nếu Dữ liệu mới được thêm vào Cột B4 thì cột C4 sẽ ghi vào là: =Pheptinhgido(B4)
  • Nếu Dữ liệu mới được thêm vào Cột B5 thì cột C5 sẽ ghi vào là: =Pheptinhgido(B5)
và cứ như vậy, mỗi lần cột B có giá trị thì cột c sẽ lấy địa chỉ để ghi xuống là : =Pheptinhgido(B....)
...................................................................................................................................................................................................

Các bạn giúp mình xíu nhé !!! cảm ơn các bạn nhiều ak

Mã:
Private Sub btn_Nhap_Click()
Dim Laygiatri
Dim Ketqua
Dim STT

STT = txt_STT.Value
Ketqua = txt_kq.Value
Laygiatri = txt_laygiatri.Value
 
LastRow = Cells(Rows.Count, "B").End(xlUp).Row
Range("A" & LastRow + 1).Value = STT
Range("B" & LastRow + 1).Value = Laygiatri
'moi lan gia tri o cot B duoc them vao, thi cot c se tra ra gia tri la =Pheptinhgido(dia chi cot B moi duoc them vao)
Range("C" & LastRow + 1).Formula = "=Pheptinhgido(B)"

txt_STT.Value = ""
txt_kq.Value = ""
txt_laygiatri.Value = ""
End Sub
 

File đính kèm

  • DEMOTHEMXOASUA.xlsm
    20.3 KB · Đọc: 10
Lần chỉnh sửa cuối:
1. Tăng LastRow thêm 1 dòng cho gọn code.

2. Sử dụng .Address

Mã:
Private Sub btn_Nhap_Click()
Dim Laygiatri
Dim Ketqua
Dim STT

STT = txt_STT.Value
Ketqua = txt_kq.Value
Laygiatri = txt_laygiatri.Value
    
LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1
Range("A" & LastRow).Value = STT
Range("B" & LastRow).Value = Laygiatri
'moi lan gia tri o cot B duoc them vao, thi cot c se tra ra gia tri la =Pheptinhgido(dia chi cot B moi duoc them vao)
Range("C" & LastRow).Formula = "=Pheptinhgido(" & Range("B" & LastRow).Address & ")"

txt_STT.Value = ""
txt_kq.Value = ""
txt_laygiatri.Value = ""
End Sub
 
Upvote 0
sửa dòng này lại nhé
Range("C" & LastRow + 1).Formula = "=Pheptinhgido(B)"
 

File đính kèm

  • DEMOTHEMXOASUA.xlsm
    21 KB · Đọc: 2
Upvote 0
Ai lại dùng công thức chết như vậy.
Lúc thêm dòng thì đọc dòng trước đó. Nếu là formula thì fill xuống. Nếu không phải formula thì hoặc để yên, hoặc dùng formula mặc định.
 
Upvote 0
Cảm ơn các bạn đã giúp mình ạ !
Các bạn cho mình hỏi xíu nữa ạ ! Làm sao để sau khi nhấn nút btn_Nhap_Click ghi xuống xong thì tự động Clear toàn bộ text trên ô text box của form, để mình gõ chữ khác không cần nhấn nút delete trên bàn phím không ạ ???

Mã:
Private Sub btn_Nhap_Click()
Dim Laygiatri
Dim Ketqua
Dim STT

STT = txt_STT.Value
Ketqua = txt_kq.Value
Laygiatri = txt_laygiatri.Value
   
LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1
Range("A" & LastRow).Value = STT
Range("B" & LastRow).Value = Laygiatri
'moi lan gia tri o cot B duoc them vao, thi cot c se tra ra gia tri la =Pheptinhgido(dia chi cot B moi duoc them vao)
Range("C" & LastRow).Formula = "=Pheptinhgido(" & Range("B" & LastRow).Address & ")"

txt_STT.Value = ""
txt_kq.Value = ""
txt_laygiatri.Value = ""
End Sub
 
Upvote 0
Làm sao để sau khi nhấn nút btn_Nhap_Click ghi xuống xong thì tự động Clear toàn bộ text trên ô text box của form,
để mình gõ chữ khác không cần nhấn nút delete trên bàn phím không ạ ???
Bạn viết mấy dòng code này để làm gì?
Mã:
txt_STT.Value = ""
txt_kq.Value = ""
txt_laygiatri.Value = ""
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom