假设我有一个代表单元格的字符串:A2
如何将其转换为坐标:(2, 1)
?
答案 0 :(得分:2)
您可以使用Range对象的Column和Row属性:
Range("A2").Row
Range("A2").Column
Examlpe:
Sub test()
Dim x As String
x = "A2"
MsgBox GetRow(x) & " " & GetColumn(x)
End Sub
Function GetRow(Cell As String)
GetRow = Range(Cell).Row
End Function
Function GetColumn(Cell As String)
GetColumn = Range(Cell).Column
End Function
答案 1 :(得分:2)
没有VBA
假设,单元格C2
包含字符串"A2"
。
然后
=INDIRECT(C2)
会返回对A2
=ROW(INDIRECT(C2))
返回行号 - 2
=COLUMN(INDIRECT(C2))
返回列号 - 1
="(" & ROW(INDIRECT(C2)) & "; " & COLUMN(INDIRECT(C2)) & ")"
以(x; y)
- (2; 1)
<强> UPD:强>
如果您正在使用UDF,请将参数类型从String
更改为Range
:
Function GetData(Cell As Range)
MsgBox "My row is " & Cell.Row
MsgBox "My column is " & Cell.Column
End Function
如果你从这样的工作表调用这个UDF:=GetData(A2)
,会弹出msg框: