Lệnh xuất số dòng của một ô bất kỳ trong VBA

thu123789

Yêu THVBA
Em cần sử dụng công thức Function {vd Function sohang(a)} mà a là vị trí 1 ô nào đó như là A1, B2, C3. Sau đó dùng code để xuất ra số hàng mà ô a đang ở.
Như vậy, khi nhập hàm =sohang(E6) thì ra kết quả =6
 

Euler

Administrator
Thành viên BQT
Kết quả này sẽ cho ra là 2.
Mã:
=ROW(A2)
Hàm này Excel hỗ trợ rồi, không cần phải xây dựng hàm riêng làm gì cho mất công.
 

thu123789

Yêu THVBA
em cần có code vba tìm row tương tự vậy để viết code tổng quát cho công thức tính khoảng cách tọa độ haversine nữa ạ.

Kết quả này sẽ cho ra là 2.
Mã:
=ROW(A2)
Hàm này Excel hỗ trợ rồi, không cần phải xây dựng hàm riêng làm gì cho mất công.
 

thu123789

Yêu THVBA
Hiện tại e đang viết được như vầy, nhưng bị sai ở dòng 7,8. Nên vẫn chưa ra công thức tổng quát cho mọi ô dữ liệu ạ

Mã:
Function matran(x)
'
' matran Macro
'
Const PI As Double = 3.141592654
Dim result As String
    rownum = ActiveCell.Row
    colnum = ActiveCell.Column
Set ToaDo = Sheets("ToaDo")
Set Matrix = Sheets("Matrix")

    lat1 = Application.WorksheetFunction.VLookup(Matrix.Cells(rownum, 1), ToaDo.Range("A1:N200"), 13, 0) * PI / 180
    lat2 = Application.WorksheetFunction.VLookup(Matrix.Cells(2, colnum).Value, ToaDo.Range("A1:N200"), 13, 0) * PI / 180
    lon1 = Application.WorksheetFunction.VLookup(Matrix.Cells(rownum, 1).Value, ToaDo.Range("A1:N200"), 14, 0) * PI / 180
    lon2 = Application.WorksheetFunction.VLookup(Matrix.Cells(2, colnum).Value, ToaDo.Range("A1:N200"), 14, 0) * PI / 180

matran(x) = Application.WorksheetFunction.Acos(Sin(lat1) * Sin(lat2) + Cos(lat1) * Cos(lat2) * Cos(lon2 - lon1)) * 6371

End Function
 

tuhocvba

Administrator
Thành viên BQT
Sai là phải. Thà nói luôn mục đích định làm cái gì cho người khác dễ hình dung, tự dưng chen ngang hỏi, không biết đâu mà lần.
Tham số truyền vào cho Function là gì. Không phải là A2, B3, C4,... hay sao?
Nếu đã vậy thì đâu còn khái niệm ActiveCell nữa.
Tôi cũng chả hiểu tham số x của bạn là cái gì. Nhìn nội dung hàm không thấy x ở đâu, haiz.

Mã:
Function matran(s as string)
's là địa chỉ cells. Ví dụ: E3, H4,...
rownum = thisworkbook.sheets(1).Range(s).row
 
Top