Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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/26.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查找第1行中的文本。复印及;如果大于零,则粘贴到行下方_Vba_Excel_Loops_Find_Copy Paste - Fatal编程技术网

VBA查找第1行中的文本。复印及;如果大于零,则粘贴到行下方

VBA查找第1行中的文本。复印及;如果大于零,则粘贴到行下方,vba,excel,loops,find,copy-paste,Vba,Excel,Loops,Find,Copy Paste,我有一个在第1行搜索文本字符串的代码。seraching没有问题 问题 找到文本后,我需要宏在列中搜索大于零的值,如果找到,则复制整行并粘贴到第2页。所以我没有成功 请参阅下面的代码: Private Sub btnUpdateEntry_Click() Dim StringToFind As String Dim i As Range StringToFind = Application.InputBox("Enter string to find", "Find strin

我有一个在第1行搜索文本字符串的代码。seraching没有问题

问题

找到文本后,我需要宏在列中搜索大于零的值,如果找到,则复制整行并粘贴到第2页。所以我没有成功

请参阅下面的代码:

Private Sub btnUpdateEntry_Click()

    Dim StringToFind As String
Dim i As Range
    StringToFind = Application.InputBox("Enter string to find", "Find string")

    Worksheets("Skills Matrix").Activate
    ActiveSheet.Rows(1).Select

        Set cell = Selection.Find(What:=StringToFind, After:=ActiveCell, _
        LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)


    For Each i In cell
        If i.Value > 0 Then
            i.Select
            ActiveCell.Range("1:1").EntireRow.Select
            Selection.Copy
            Sheets("Sheet2").Range("A65000").End(xlUp).Offset(1, 0).PasteSpecial
        End If
    Next i

    If cell Is Nothing Then
        Worksheets("Data").Activate
        MsgBox "String not found"
    End If

End Sub

谢谢。

试试这个,尽管我怀疑你是否需要搜索整个专栏?你的循环只搜索了一个单元格。如果可以在第一行中多次找到搜索字符串,则需要修改此代码

Private Sub btnUpdateEntry_Click()

Dim StringToFind As String
Dim i As Range
Dim cell As Range

StringToFind = Application.InputBox("Enter string to find", "Find string")

With Worksheets("Skills Matrix")
    Set cell = .Rows(1).Find(What:=StringToFind, LookAt:=xlWhole, _
                             MatchCase:=False, SearchFormat:=False)

    If Not cell Is Nothing Then
        For Each i In .Range(cell.Offset(1), .Cells(.Rows.Count, cell.Column).End(xlUp))
            If IsNumeric(i.Value) Then
                If i.Value > 0 Then
                    i.EntireRow.Copy
                    Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial
                End If
            End If
        Next i
    Else
        Worksheets("Data").Activate
        MsgBox "String not found"
    End If
End With

End Sub

谢谢你。但是我得到了一个类型不匹配错误@SJROn哪一行?是否有些单元格不包含数字?我已经修改了上面的代码,请再试一次。它的运行时错误是13。这不是在电话线上发牢骚。搜索的文本是字符串