在Excel中查找给定单元格的列(标题)名称

我有许多不同栏目(20+)的许多订单号的工作簿。 每列都有一个不同的标题(列名),可以在第一行find。

在不同的工作表中,我将把所有订单编号编译到列A中。在列BI中将填充每个订单编号的列(标题)的名称。

下面的代码将为我提供一个返回表单名称的函数。 在第14行中,我试着将ws名称改为标题,但不起作用。

Option Explicit Function FindMyOrderNumber(strOrder As String) As String Dim ws As Worksheet Dim rng As Range Application.Volatile For Each ws In Worksheets If ws.CodeName <> "Sheet3" Then Set rng = Nothing On Error Resume Next Set rng = ws.Cells.Find(What:=strOrder, LookAt:=xlWhole) On Error GoTo 0 If Not rng Is Nothing Then FindMyOrderNumber = ws.Name Exit For End If End If Next Set rng = Nothing Set ws = Nothing End Function 

 FindMyOrderNumber = ws.Cells(1, rng.Column) 

从你的描述,听起来像你想返回相同的价值,你传递给函数…

如果您的意思是您想要返回find标题的列字母,请编辑以下几行:

 'On Error Resume Next 'don't need this... Set rng = ws.Rows(1).Find(What:=strOrder, LookAt:=xlWhole) 'On Error GoTo 0 If Not rng Is Nothing Then FindMyOrderNumber = Replace(rng.Address(False, False),"1","") Exit For End If 

编辑:要返回标题下面的单元格中的值:

 'On Error Resume Next 'don't need this... Set rng = ws.Rows(1).Find(What:=strOrder, LookAt:=xlWhole) 'On Error GoTo 0 If Not rng Is Nothing Then FindMyOrderNumber = rng.Offset(1,0).Value Exit For End If