VBA - 查找特定行和列中给定标题/字符串的相应列。工作簿

时间:2017-10-04 16:16:46

标签: vba excel-vba excel

我的excelsheet是这样的: enter image description here

如图所示,第1行是列标题(ITEM,PART NUMBER,ATA 2 ..) 使用VBA,如何找到存在特定标题的相应列(在第1行中)?

示例:

项。在A列中,所以它应该返回A'

MTBR在L列,因此它应该返回' L'

这样做的目的是将特定列的复制从一个电子表格自动复制到另一个电子表格。目前的代码是:

If Form.ComboBox2.Value <> "" Then
        Set sourceColumn = wb.Worksheets(cmb).Columns("B")
        Set targetColumn = Workbooks("B.xlsm").ActiveSheet.Columns("A")
        sourceColumn.Copy Destination:=targetColumn
End If

如上所示,我手动给出了列名。我希望在匹配Form.ComboBox2.Value

wb.Worksheets(cmb)中的文字后找到特定列

如何在Form.ComboBox2.Value的第1行的wb.Worksheets(cmb)中搜索字符串,并返回我可以在此处插入的列号Set sourceColumn = wb.Worksheets(cmb).Columns("B")

1 个答案:

答案 0 :(得分:0)

未经测试,但应该让你开始:

Sub Tester()

    Dim f, sht As Worksheet, hdr, sourceColumn As Range

    Set sht = Workbooks("B.xlsm").ActiveSheet

    If Form.ComboBox2.Value <> "" Then

        Set sourceColumn = wb.Worksheets(cmb).Columns("B")
        hdr = sourceColumn.Cells(1).Value 'get the source header

        Set f = sht.Rows(1).Find(what:=hdr, lookat:=xlWhole)

        If Not f Is Nothing Then
            sourceColumn.Copy Destination:=f
        Else
            MsgBox "Destination column header '" & hdr & "' not found!"
        End If

    End If

End Sub