获取逻辑列字母

Getting the logical column letters

我需要获取我在 excel sheet 中创建的逻辑列的字母。

当我点击一个单元格时,假设 H7 有数据 23,我能够得到 Te excel 列 H,但出于某些商业目的我想要 A,即第 5 行中的字母对应一个单元格是selected.If假设是56,我要B.

图 2 显示了为什么我想要 B 而不是 excel 列 I,这是因为如果我插入一列,我的 excel 列字母将改变,但对应于逻辑列字母的数字B只会留在B。 我可以使用代码获得 excel 列字母:

Public Function ColumnLetters(rInput As Range) As String
ColumnLetters = Split(rInput.Address, "$") (1)
End Function

如果提取的列字母是 H,我需要它正下方第 5 行的值,即 A,因此 on.For 我是 B,依此类推。

我这样做是为了插入额外的列,excel 列字母会改变,但不会改变我的逻辑列字母。

有人可以帮忙吗?

您只想将列号转换为字母,对吗?

在您的 Vba 代码中,使用 Chr()。这会将您输入的数字转换为字符。

如果你输入 Chr(65),它将 return "A"。您现在只需添加您的计算即可获得您想要的字母。

我不明白你到底想要什么,但举个例子,假设 col 是你的列号变量。

Chr(64+col) 将 return A 用于第 1 列。

但是如果你想 return A 用于第 5 列,你可以像 Chr(60+col)

那样调整它

正如 FDavidov 所说 - 如果我们正确理解您的问题,您可以使用命名 运行ges 来实现此目的。

在下面显示的示例中,我突出显示了 A 列并在 Name Box(红色方块)中键入了名称 RefThisColumn。我还只选择了单元格 A1 并在 Name Box.

中输入 RefThisCell

然后我可以在 VBA 中使用这些命名为 运行ges 而无需更新引用。
在插入列以将我命名的 运行ges 移动到 E 列(绿色方块)后,我 运行 完全相同的代码并得到完全相同的结果: