Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel 如何在一列中查找更多值_Excel_Vba_Find - Fatal编程技术网

Excel 如何在一列中查找更多值

Excel 如何在一列中查找更多值,excel,vba,find,Excel,Vba,Find,我不知道如何使用“查找”命令 我需要在“M”列中找到单元格“F1”的值。如果值在第列中,则将第“M”列中值右侧的值复制到工作表“car”中的单元格“F2”。然后返回工作表1至单元格“G1”并重复,直到单元格“cell,row=1”为空。如果为空,则转到单元格“F2”的下一行……此循环直到单元格“F=单元格,行”为空 如图所示: 我有这个代码,但它不是循环代码: Columns("M:M").Select Selection.Find(What:=Range("F1"), After:=Acti

我不知道如何使用“查找”命令

我需要在“M”列中找到单元格“F1”的值。如果值在第列中,则将第“M”列中值右侧的值复制到工作表“car”中的单元格“F2”。然后返回工作表1至单元格“G1”并重复,直到单元格“cell,row=1”为空。如果为空,则转到单元格“F2”的下一行……此循环直到单元格“F=单元格,行”为空

如图所示:

我有这个代码,但它不是循环代码:

Columns("M:M").Select
Selection.Find(What:=Range("F1"), After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Offset(0, 1).Copy
Sheets("car").Select
Range("F2").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("worksheet1").Select
有人能帮我吗?

我建议查看一个“for each”操作,它将遍历您的数据,直到列为空,下面的链接可能会为您指明正确的方向


我试着解决这个问题。您可以对此进行修改,并且可以执行

Dim myRng As Range
Dim nResult As Long
Set myRng = Worksheets("worksheet1").Range("M:M")
nResult = Application.CountIf(myRng, Range("F1"))

Set rFound = Worksheets("worksheet1").Cells.Find(What:=Range("F1"), _
             After:=Cells(Cells.Rows.Count, Cells.Columns.Count), _
             LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _
             SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

For i = 0 To nResult - 1


            Worksheets("car").Range("F2") = rFound.Offset(0, 1).Value
            Set rFound = Worksheets("worksheet1").Cells.FindNext(rFound)


Next i

End

试试这个,想想它应该能做你想做的一切:

Dim TargetRange As Range
Set TargetRange = Sheets("worksheet1").Range("F1:K14")

Dim CurrentRange As Range

    For Each CurrentRange In TargetRange

        If CurrentRange.Value = "" Then
        Exit For
        End If

        Sheets("Car").Cells(CurrentRange.Row, CurrentRange.Column) = Application.WorksheetFunction.VLookup(CurrentRange.Value, Sheets("worksheet1").Range("M1:N7"), 1, False)

    Next CurrentRange

编辑删除了一些我在机器上运行代码时忘记删除的废话。