来自列名的Excel列号

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)

如何使用Excel宏从Excel中的列名中获取列号?

提问于
用户回答回答于

我觉得你想要这个?

列名对列号

Sub Sample()
    ColName = "C"
    Debug.Print Range(ColName & 1).Column
End Sub

还包括你想要的反面

列号对列名

Sub Sample()
    ColNo = 3
    Debug.Print Split(Cells(, ColNo).Address, "$")(1)
End Sub

跟进

就像我在最上面有工资字段,比如在单元格C(1,1)现在,如果我改变文件并将工资列移到其他地方,比如F(1,1),那么我将不得不修改代码,所以我希望代码检查工资,找到列号,然后根据该列号执行其余的操作。

在这种情况下,我建议使用.FIND参见下面的示例

Option Explicit

Sub Sample()
    Dim strSearch As String
    Dim aCell As Range

    strSearch = "Salary"

    Set aCell = Sheet1.Rows(1).Find(What:=strSearch, LookIn:=xlValues, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

    If Not aCell Is Nothing Then
        MsgBox "Value Found in Cell " & aCell.Address & _
        " and the Cell Column Number is " & aCell.Column
    End If
End Sub

快照

用户回答回答于

返回列字母中的数字,其中单元格A1保存专栏字母:

=栏(间接(A1和“1”))

由于间接函数是不稳定的,因此每当任何单元格被更改时,它都会重新计算,所以如果您有很多这样的函数,它可能会减慢您的工作簿速度。考虑另一种解决方案,例如“code”函数,它给出ASCII字符的编号,从65开始。注意,要做到这一点,您需要检查列名中有多少位数字,并根据‘A’、‘BB’或‘CCC’更改结果。

返回数字中的列字母其中A1保存列号:

=(地址(1,A1,4),“1”,“”)

请注意,无论列名中有多少字母,这两种方法都可以工作。

希望这能帮到别人。

扫码关注云+社区