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

比方说,我有这个string代表一个单元格: A2
(2, 1) ?我应该怎么做?

没有VBA

假设C2单元格包含string"A2"

然后

  • =INDIRECT(C2)返回对A2引用
  • =ROW(INDIRECT(C2))返回行号2
  • =COLUMN(INDIRECT(C2))返回列号 – 1
  • ="(" & ROW(INDIRECT(C2)) & "; " & COLUMN(INDIRECT(C2)) & ")"以格式(x; y)(2; 1)

在这里输入图像描述

UPD:

如果您使用的是UDF,请将您的参数types从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框会popup:

  • “我排2”
  • “我的专栏是1”

您可以使用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