将所有工作表VBA上的标题标准化
我是VBA新手,一直在玩弄基础知识 我的任务是根据标题和列的数据从某一行提取数据。例如,如果在标题ENG JOBSCOPE下有一列,则提取该数据的行 但是,当宏在所有工作表中循环时,如果我想使用range.find查找的条件找不到,它会给我错误91 我读过关于使用normalise的书,但我似乎无法让它工作 目前我正在使用这个代码将所有工作表VBA上的标题标准化,vba,excel,Vba,Excel,我是VBA新手,一直在玩弄基础知识 我的任务是根据标题和列的数据从某一行提取数据。例如,如果在标题ENG JOBSCOPE下有一列,则提取该数据的行 但是,当宏在所有工作表中循环时,如果我想使用range.find查找的条件找不到,它会给我错误91 我读过关于使用normalise的书,但我似乎无法让它工作 目前我正在使用这个代码 J = 1 For Each ws In x.Worksheets For Each wks In y.Worksheets With
J = 1
For Each ws In x.Worksheets
For Each wks In y.Worksheets
With x.Worksheets(ws.Name)
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
For i=2 to Lastrow
EJOB = Range("A1:DE1").Find(What:="ENG JOBSCOPE", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False).Column
'Error 91 comes from the above line ^^^
EJobs = ws.Cells(i, EJOB).Value
If EJobs <> "" then
x.Sheets("ID").Rows(i).Copy
y.Sheets("ID").Range("A" & j).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
J=J+1
End if
Next i
Next wks
Next ws
End sub
工程作业范围是一个标题。但是,工作表中的某些部分包含工程工作范围
有没有其他方法可以让我使用它来查找列号,而不考虑其间的空格或大小写
此外,工作表中的某些部分不包含工程作业范围。有没有一种方法可以让代码继续搜索,而不会因为错误91而停止?
我尝试使用on error goto next,但数据混乱
我希望我键入的内容足够或足够清楚。如果不够清楚,请告诉我需要输入什么,因为我是这个论坛的新手
提前非常感谢 使用通配符
EJOB = Range("A1:DE1").Find(What:="ENG*JOB*SCOPE", LookIn:=xlValues, _
LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False).Column
如果您想让Find在不考虑大写的情况下工作,请键入MatchCase:=False 嗨!谢谢你的快速回复。它似乎是从另一个头中取出信息,因为还有另一个名为CP ENG JOBSCOPE的头。是否可能我只想从ENG JOBSCOPE/ENG JOBSCOPE搜索?我已经测试过了,没有选择CP ENG JOBSCOPE。What:=ENGJOBSCOPE意味着单元格中的值必须以ENG开头。哦,是的,我意识到我的错误在于我隐藏的列是错误的。它的工作非常出色!非常感谢你!