获取逻辑列字符

获取逻辑列字符

问题描述:

我需要获取我在Excel表格中创建的逻辑列的字母。获取逻辑列字符

当我点击一个单元格时,假设H7有数据23,我可以得到Te excel列H,但出于某种商业目的我想要A,即第5行中的字母对应于一个单元格如果假设它是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排它下面这是一个价值和等等。对于我它是B,等等。

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

请问有人可以帮忙吗? image1image2

+0

你能想出一个例子,它不会改变你的逻辑列字母? – Vityata

+0

我不明白你想要实现什么? –

+0

我想引用我的目标单元格列,所以我的数据总是可以通过对应于第5行的逻辑列字母来引用。即使我在我之前插入列,并且我在excel列中变为J,我的字母B I第五排将完好无损。这就是为什么我试图获取我在第五行创建的列字母而不是excel列字母 –

正如FDavidov说 - 你可以使用命名范围实现这如果我们正确理解你的问题。

在下面显示的示例中,我突出显示了列A,并在Name Box(红色正方形)中键入名称RefThisColumn。我也选择了A1单元格,并在Name Box中输入RefThisCell

我可以在VBA中使用这些命名范围,而无需更新引用。
插入移动我的命名范围列到列E(绿色方块)后,我跑了完全相同的代码,并得到了完全相同的结果:
enter image description here

你只是想将列号转换成一个字母,对吗?

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

如果你把Chr(65)它会返回“A”。你只需要现在添加你的计算来达到你想要的字母。

我不明白你想要什么,但作为一个例子,可以说col是你的列号变量。

Chr(64+col)将返回一个作为第1列

不过,如果你想返回一个5列,你会调整它像Chr(60+col)

+0

我添加了图片和说明。请参考我编辑的问题。我希望你现在就明白。 :( –