2010-02-13 3 views
16

Có chức năng nào để nhận địa chỉ của ô có chức năng VBA không?Cách lấy địa chỉ ô có chức năng VBA trong trang tính Excel

Tôi đã sử dụng "Application.ActiveCell.Address", nhưng thấy rằng phương pháp này không phải là cách chính xác để nhận địa chỉ của ô đang gọi.

ví dụ: Nếu chúng tôi có bảng excel với các hàm VBA đã lưu, Khi bạn mở lại trang tính, phương thức trên sẽ không hoạt động.

xin vui lòng giúp

Nimo

+0

@nimo, là hàm một UDF? Bạn có thể cho một số mã làm ví dụ về những gì bạn đang cố gắng làm không? –

+2

'ThisCell' https://msdn.microsoft.com/en-us/library/office/ff834969.aspx – Slai

Trả lời

19

Bạn có thể sử dụng Application.Caller, nhưng có thể bạn sẽ là tốt nhất để vượt qua các tế bào để hàm.

With Application.Caller 
     CallerRows = .Rows.Count 
     CallerCols = .Columns.Count 
     CallerAddr = .Address 
    End With 

Xem: http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Để vượt qua các tế bào:

=SomeFunction(A1) 

đâu mã có:

SomeFunction(r) 
+0

Chỉ cần phát hiện ra rằng tôi đã hỏi cùng một câu hỏi: [Làm cách nào để tìm ra ô nào Hàm VBA được gọi từ ] (http://stackoverflow.com/questions/5559279/excel-cell-from-which-a-function-is-called) –