Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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

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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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新手,一直在玩弄基础知识 我的任务是根据标题和列的数据从某一行提取数据。例如,如果在标题ENG JOBSCOPE下有一列,则提取该数据的行 但是,当宏在所有工作表中循环时,如果我想使用range.find查找的条件找不到,它会给我错误91 我读过关于使用normalise的书,但我似乎无法让它工作 目前我正在使用这个代码 J = 1 For Each ws In x.Worksheets For Each wks In y.Worksheets With

我是VBA新手,一直在玩弄基础知识

我的任务是根据标题和列的数据从某一行提取数据。例如,如果在标题ENG JOBSCOPE下有一列,则提取该数据的行

但是,当宏在所有工作表中循环时,如果我想使用range.find查找的条件找不到,它会给我错误91

我读过关于使用normalise的书,但我似乎无法让它工作

目前我正在使用这个代码

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开头。哦,是的,我意识到我的错误在于我隐藏的列是错误的。它的工作非常出色!非常感谢你!