如图所示,第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")
答案 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