Xác định vị trí cột và dòng tại vị trí viết công thức (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

DuongPhjDuong

Thành viên mới
Tham gia
22/10/10
Bài viết
15
Được thích
1
Nhờ mọi người làm cho em một ví dụ về hàm Function trong VBA. Tại vị trí viết công thức, ví dụ công thức viết tại ô B2 thì có Row=2 và Column =2, thì phải làm như thế nào để xác định Row,Column tại ô viết công thức. Nhờ mọi người chỉ giúp cho em với.
Nhân tiện cho em hỏi trong lúc viết hàm Function lúc mở File nó không tự chạy mà mình phải kích vào và nhấn Enter nó mới chạy được. Như vậy thì phải khắc phục như thế nào ạ.
Xin cảm ơn.
 
Lần chỉnh sửa cuối:
Nhờ mọi người làm cho em một ví dụ về hàm Function trong VBA. Tại vị trí viết công thức, ví dụ công thức viết tại ô B2 thì có Row=2 và Column =2, thì phải làm như thế nào để xác định Row,Column tại ô viết công thức. Nhờ mọi người chỉ giúp cho em với.
Nhân tiện cho em hỏi trong lúc viết hàm Function lúc mở File nó không tự chạy mà mình phải kích vào và nhấn Enter nó mới chạy được. Như vậy thì phải khắc phục như thế nào ạ.
Xin cảm ơn.
Bạn dùng công thức [B2].Row() để xác định chỉ số dòng, [B2].column() để xác định chỉ số cột.
Vấn đề thứ 2 là do chế độ tính toán của bạn đang là Manual bây giờ bạn chuyển sang chế độ Automatic như sau:
Tool-->Option-->Calculation-->Automatic-->Ok
 
Upvote 0
Cảm ơn bạn. Ý mình là dùng 1 hàm cho nhiều cells ( ví dụ B2: B20 chẳng hạn) như vậy xác định như thế nào ?
 
Upvote 0
Ví dụ thế này nhé: Bạn có 1 vùng từ B2:B20 chẳng hạn, bạn sẽ cho i chạy từ B2 đến B20 ta viết CT như sau"

Sub vidu()
Dim i As Integer, rng As Range, r As Long, c As Long
Set rng = Range("B2:B20")
For i = 1 To rng.Rows.Count
r = rng(i, 1).Row()
c = rng(i, 1).Column()
MsgBox r & Chr(13) & c
Next i
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn. Ý mình là dùng 1 hàm cho nhiều cells ( ví dụ B2: B20 chẳng hạn) như vậy xác định như thế nào ?
Hình như bạn cần cái này thì phải , ví dụ :
Sub thu()
Range(Cells(2, 2), Cells(20, 2)).FormulaR1C1 = Cells(2, 3) * Cells(2, 4)
End Sub
cho vài số tại c2 và d2 để text thử . Nếu không trúng thì... thua
............
Xem lại từ đầu thì thấy bạn đưa file lên thì hơn . Chắc bạn chưa sử lý được code vào công việc nếu file phức tạp .
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ mọi người làm cho em một ví dụ về hàm Function trong VBA. Tại vị trí viết công thức, ví dụ công thức viết tại ô B2 thì có Row=2 và Column =2, thì phải làm như thế nào để xác định Row,Column tại ô viết công thức. Nhờ mọi người chỉ giúp cho em với.

Nếu là HÀM TỰ TẠO thì bạn dùng ThisCell nhé
Ví dụ:
Application.ThisCell.Row để xác định vị trí dòng tại cell gõ công thức
Application.ThisCell.Column để xác định vị trí cột tại cell gõ công thức
Nhân tiện cho em hỏi trong lúc viết hàm Function lúc mở File nó không tự chạy mà mình phải kích vào và nhấn Enter nó mới chạy được. Như vậy thì phải khắc phục như thế nào ạ.
Cái này phải xem hàm của bạn viết về cái gì mới nói chuyện được. Thường thì người ta sẽ dùng Application.Volatile đặt ở đầu code để hàm tự cập nhật
 
Upvote 0
Nhờ mọi người làm cho em một ví dụ về hàm Function trong VBA. Tại vị trí viết công thức, ví dụ công thức viết tại ô B2 thì có Row=2 và Column =2, thì phải làm như thế nào để xác định Row,Column tại ô viết công thức. Nhờ mọi người chỉ giúp cho em với.
Nhân tiện cho em hỏi trong lúc viết hàm Function lúc mở File nó không tự chạy mà mình phải kích vào và nhấn Enter nó mới chạy được. Như vậy thì phải khắc phục như thế nào ạ.
Xin cảm ơn.
Cái này thì không cần VBA vì bạn đang viết công thức mà. 2 hàm Row() và Column() nếu không có tham số sẽ trả về hàng và cột hiện thời. Ví dụ công thức sau copy vào ô nào sẽ trả về địa chỉ của ô đó (với các cột từ A đến Z) (nếu công thức ở ô A1 sẽ ra kết quả A1, công thức ở ô B2 sẽ trả về B2...)
=CHAR(COLUMN()+64) & ROW()
 
Upvote 1
Cái này thì không cần VBA vì bạn đang viết công thức mà. 2 hàm Row() và Column() nếu không có tham số sẽ trả về hàng và cột hiện thời. Ví dụ công thức sau copy vào ô nào sẽ trả về địa chỉ của ô đó (với các cột từ A đến Z) (nếu công thức ở ô A1 sẽ ra kết quả A1, công thức ở ô B2 sẽ trả về B2...)
=CHAR(COLUMN()+64) & ROW()

Người ta đang xây dựng hàm tự tạo và cần lấy giá trị dòng, cột tại cell đang gõ công thức (công thức của hàm tự tạo). Vậy nên không thể dùng công thức để giải quyết được đâu
Một ví dụ tương tự như câu hỏi của chủ topic:
http://www.giaiphapexcel.com/forum/showthread.php?27308-Tham-chiếu-đến-ô-chứa-công-thức
 
Upvote 0
Nếu là HÀM TỰ TẠO thì bạn dùng ThisCell nhé
Ví dụ:
Application.ThisCell.Row để xác định vị trí dòng tại cell gõ công thức
Application.ThisCell.Column để xác định vị trí cột tại cell gõ công thức

Cái này phải xem hàm của bạn viết về cái gì mới nói chuyện được. Thường thì người ta sẽ dùng Application.Volatile đặt ở đầu code để hàm tự cập nhật

Em xin cảm ơn anh đã hướng dẫn, nhưng em thay vào trong công thức vẫn không được. Tiếc là ở đây em ko đưa file lên được. Nếu được anh vào đây xem vấn đề này giúp em với http://www.giaiphapexcel.com/forum/showthread.php?93995-Hàm-chia-nhỏ-theo-yêu-cầu.
Cảm ơn!
 
Upvote 0
Em xin cảm ơn anh đã hướng dẫn, nhưng em thay vào trong công thức vẫn không được. Tiếc là ở đây em ko đưa file lên được. Nếu được anh vào đây xem vấn đề này giúp em với http://www.giaiphapexcel.com/forum/showthread.php?93995-Hàm-chia-nhỏ-theo-yêu-cầu.
Cảm ơn!
Trong hàm này bạn đâu đả động gì đến Thiscell đâu, mà được với lại không được?
 
Upvote 0
Đúng vậy, em ko làm được Thiscell nên chuyển sang phương thức không được hay cho lắm. Vì vậy mong mọi người hướng dẫn.
 
Upvote 0
Web KT

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

Back
Top Bottom