如何在VBA中查找并返回列索引?
我正在创建一个VBA代码来清除多个excel文件中的一些数据。问题是当我把文件放在一起时,标题的位置不是固定的,列也会溜走。 我必须根据标题名找到列索引,并将它们分配给变量 我将标题的范围声明为一个变量。 如何将列索引返回到变量? 我从来没有这样做过这就是为什么我要问你们。 第一次尝试时,我的想法是:如何在VBA中查找并返回列索引?,vba,excel,Vba,Excel,我正在创建一个VBA代码来清除多个excel文件中的一些数据。问题是当我把文件放在一起时,标题的位置不是固定的,列也会溜走。 我必须根据标题名找到列索引,并将它们分配给变量 我将标题的范围声明为一个变量。 如何将列索引返回到变量? 我从来没有这样做过这就是为什么我要问你们。 第一次尝试时,我的想法是: Set findrng = sourceWS.Range(Cells(1, 1), Cells(1, 100)) index1 = findrng.Find("COUNTRY") index1应
Set findrng = sourceWS.Range(Cells(1, 1), Cells(1, 100))
index1 = findrng.Find("COUNTRY")
index1应该存储1或21之类的整数
任何帮助都将不胜感激。啊,对不起,伙计们,我刚刚找到了它。这太简单了
ind1 = findrng.Find("COUNTRY").Column
我不明白你在问什么 您的问题是希望能够在第一行中搜索标题,并根据标题检索特定列吗
thisRow = 1
searchCol = Sheet1.Cells(thisRow, 1).EntireRow.Find(What:="someString", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Column
??然后您可以使用
.column
访问器访问该列 请注意,.Find
在没有找到与所查找内容匹配的内容时将返回Nothing
:在这些情况下,此代码将抛出运行时错误91。在验证Find
调用是否包含有效的对象引用后,您应该始终仅访问该调用结果的成员,例如如果Not findrng为Nothing,则