Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VBA中查找并返回列索引?_Vba_Excel - Fatal编程技术网

如何在VBA中查找并返回列索引?

如何在VBA中查找并返回列索引?,vba,excel,Vba,Excel,我正在创建一个VBA代码来清除多个excel文件中的一些数据。问题是当我把文件放在一起时,标题的位置不是固定的,列也会溜走。 我必须根据标题名找到列索引,并将它们分配给变量 我将标题的范围声明为一个变量。 如何将列索引返回到变量? 我从来没有这样做过这就是为什么我要问你们。 第一次尝试时,我的想法是: Set findrng = sourceWS.Range(Cells(1, 1), Cells(1, 100)) index1 = findrng.Find("COUNTRY") index1应

我正在创建一个VBA代码来清除多个excel文件中的一些数据。问题是当我把文件放在一起时,标题的位置不是固定的,列也会溜走。 我必须根据标题名找到列索引,并将它们分配给变量

我将标题的范围声明为一个变量。 如何将列索引返回到变量? 我从来没有这样做过这就是为什么我要问你们。 第一次尝试时,我的想法是:

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,则