此问题在此处已有答案:
Excel column number from column name(7个答案)
16小时前关门了。
我找到了将数字转换为列字母的代码。
如何将列字母转换为数字?
Sub colLtr()
Dim mycolumn
mycolumn = 1000
Mcl = Left(Cells(1, mycolumn).Address(1, 0), InStr(1, Cells(1, mycolumn).Address(1, 0), "$") - 1)
MsgBox Mcl
End Sub
5条答案
按热度按时间piv4azn71#
可以按字母引用列,如下所示:
因此,要获得列号,只需像这样修改上面的代码:
上面的行返回一个整数(本例中为1)。
因此,如果使用变量
mycolumn
来存储和引用列号,则可以按以下方式设置该值:然后你可以这样引用你的变量:
或引用单元格(
A1
):或者引用单元格区域(
A1:A10
),可以用途:2uluyalo2#
给出的答案可能很简单,但它在很大程度上是次优的,因为它需要获取范围并查询属性。最优解决方案如下:
一些例子:
euoag5mw3#
要查看字母指定列的等效数字:
wqnecbli4#
我的评论
ARich给出了一个很好的解决方案,并展示了我使用了一段时间的方法,但Sancarn是正确的,它不是最优的。它有点慢,如果输入错误会导致错误,而且不是很健壮。Sancarn是在正确的轨道上,但缺乏一点错误检查:例如,getColIndex(“_”)和getColIndex(“AE”)都将返回31。其他非字母字符(例如:“*”)有时会返回各种负值。
工作职能
下面是我写的一个函数,它可以将列字母转换为数字。如果输入不是工作表中的列,它将返回-1(除非AllowOverflow设置为TRUE)。
示例
lf5gs5x25#
如果需要编写一个健壮的函数,请注意不要使用工作表属性(如下面的@Zac),因为如果活动工作表不是工作表(如图表),它会崩溃