Tham chiếu dùng các thuộc tính của activeCell

Liên hệ QC

tonthatnhan

Thành viên mới
Tham gia
29/9/09
Bài viết
5
Được thích
0
Em có Cells(i,1) trong đó i là số dòng
em muốn Cells(i,2) = Cells(i,1)+1
'trong đó i = ActiveCell.row
========================
Hàm như sau:
Function tong() as long
i = activeCell.Row
tong = Cells(i,1).value + 1
End Function
file excel như sau:
Ô A1 A2, A3 lần lượt là các giá trị 1,2,3
tại ô B1, B2, B3 em gõ công thức '=tong()
Kết quả ô B1 = B2=B3 = 4 (con trỏ chuột đang active ô B3)
(nguyên nhân activeCell.Row lúc này = 4, các ô update tính toán hàm và lấy i=3 nên giá trị của ô = A3+1 = 4)
Vậy làm sao để Function không bị nhảy giá trị khi thay đổi ActiveCell
Nhờ các anh giúp
Em cảm ơn
 
Dùng Application.Caller để biết cell mà hàm được đặt.
ActiveCell rất nguy hiểm.

Ví dụ:
Function Tong()
Set theCell = Application.Caller
... ' code kiếc gì đó
End Function
 
Upvote 0
Em có Cells(i,1) trong đó i là số dòng
em muốn Cells(i,2) = Cells(i,1)+1
'trong đó i = ActiveCell.row
========================
Hàm như sau:
Function tong() as long
i = activeCell.Row
tong = Cells(i,1).value + 1
End Function
file excel như sau:
Ô A1 A2, A3 lần lượt là các giá trị 1,2,3
tại ô B1, B2, B3 em gõ công thức '=tong()
Kết quả ô B1 = B2=B3 = 4 (con trỏ chuột đang active ô B3)
(nguyên nhân activeCell.Row lúc này = 4, các ô update tính toán hàm và lấy i=3 nên giá trị của ô = A3+1 = 4)
Vậy làm sao để Function không bị nhảy giá trị khi thay đổi ActiveCell
Nhờ các anh giúp
Em cảm ơn
Đại khái là:
Mã:
Tong = Cells(Application.ThisCell.Row, 1).Value + 1
 
Upvote 0
Em có Cells(i,1) trong đó i là số dòng
em muốn Cells(i,2) = Cells(i,1)+1
'trong đó i = ActiveCell.row
========================
Hàm như sau:
Function tong() as long
i = activeCell.Row
tong = Cells(i,1).value + 1
End Function
file excel như sau:
Ô A1 A2, A3 lần lượt là các giá trị 1,2,3
tại ô B1, B2, B3 em gõ công thức '=tong()
Kết quả ô B1 = B2=B3 = 4 (con trỏ chuột đang active ô B3)
(nguyên nhân activeCell.Row lúc này = 4, các ô update tính toán hàm và lấy i=3 nên giá trị của ô = A3+1 = 4)
Vậy làm sao để Function không bị nhảy giá trị khi thay đổi ActiveCell
Nhờ các anh giúp
Em cảm ơn
Xem lại cách lập hàm (function), UDF trong vba excel thường là không nên liên quan ActiveCell, hay điều chỉnh Cell khác (khác cell đặt function đó).
Khi tác động tới ActiveCell người ta hay dùng Sub
Vì nếu dùng Function thì phải tác động tới caller là điều không cần thiết.
 
Upvote 0
Web KT

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

Back
Top Bottom