Excel VBA将单元格名称转换为它的坐标

时间:2014-06-28 11:32:36

标签: excel vba

假设我有一个代表单元格的字符串:A2 如何将其转换为坐标:(2, 1)

2 个答案:

答案 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)
  • 格式返回坐标

enter image description here

<强> 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框:

  • &#34;我的行是2&#34;
  • &#34;我的专栏是1&#34;