我有一张excel表,看起来像这样;
标题名称位于第一行。我想有一个VBA函数返回列号,给定第一行中的单元格名称。例如,getColumnNumber(“B Symbol”)应返回B
。 getColumnNumber(“C Symbol”)应返回C
。
我正在使用Excel 2016。
答案 0 :(得分:2)
找到文本,然后阅读地址。
With Worksheets(1).Range("a1:z1") '
Set c = .Find("whatever you need to find", lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = split(c.Address,"$")(0)
msgbox firstAddress
End If
End With
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-find-method-excel
答案 1 :(得分:2)
你不需要VBA。以下公式也适用,任何VBA使用的方法基本相同。
=SUBSTITUTE(ADDRESS(1, MATCH("C Symbol", 1:1, 0), 4), 1, TEXT(,))
答案 2 :(得分:0)
这是我自己的问题的答案,改编自teddys'。他的回答有轻微的错误。
With Worksheets(1).Range("a1:z1") '
Set c = .Find("whatever you need to find", lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = split(c.Address,"$")(1) 'should be 1, not 0
msgbox firstAddress
End If
End With