簡體   English   中英

此代碼有什么問題? .VBA查找

[英]What is wrong with this code? .Find , VBA

我有兩個子項,第一個子項“ Find”在G列中找到所有值,范圍(G1:G10),我有三個值,所以它循環3次並給我值。

現在,我正在調用第二個子“ Find2”以在A列范圍(A1:A10)中找到該值。 問題是它只運行一次..它不循環三次以獲取3個值。 任何想法 ?。 為什么它不起作用。

Sub Find()

Set shtSheet1 = Sheets("Sheet1")
With shtSheet1.Range("G1:G10")
    Set V = .find("*", LookIn:=xlValues)
    If Not V Is Nothing Then
        FirstAddress = V.Address

        Do
        X = V
        Call Find2
        Set V = .FindNext(V)

        Loop While Not V Is Nothing And V.Address <> FirstAddress

    End If
End With

End Sub

第二子

Public Sub Find2()

Set shtSheet1 = Sheets("Sheet1")
Set shtSheet2 = Sheets("Sheet2")

    With shtSheet1.Range("A1:A10")
        Set C = .find(X, LookIn:=xlValues)
        If Not C Is Nothing Then
        MsgBox X
        End If
    End With

End Sub

我認為在子例程中使用.Find()會干擾主例程中的.FindNext()。

我同意加里(Gary)的說法,這有一些干擾。 而不是在您的子例程中使用Find(),請看這是否對您有用。

Public Sub Find2()
    Dim shtSheet1 As Worksheet
    Dim C As Range

    Set shtSheet1 = Sheets("Sheet1")
    Set C = shtSheet1.Range("A1:A10")

    If Not IsError(Application.Match(X, C, 0)) Then
        MsgBox X
    End If

End Sub

采用

private Function Find2()
end function

子安裝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM