更新:感謝@ user3561813他告訴我有關代碼中的問題。我已經相應更新了。它可能不是很專業,但它會完成這項工作。
下面的代碼是簡單的那麼一點點@ user3561813
代碼假設你的佈局是這樣的:
Sub rowvscol()
Dim Father As String
Dim Mother As String
Dim Children As String
Dim rng As Range
Dim LastRow As Long
Father = Range("F2").Value
Mother = Range("G2").Value
Children = Range("H2").Value
LastRow = Range("B" & Rows.Count).End(xlUp).Row
i = 1
While i <= LastRow
With Range("B" & i & ":B" & LastRow) '<- Father Column
Set rng = .Find(What:=Father, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing And rng.Offset(0, 1).Value = Mother And rng.Offset(0, 2).Value = Children Then
MsgBox rng.Row
Exit Sub
End If
End With
i = i + 1
Wend
MsgBox "No match"
End Sub
因此,它被彈出一個MsgBox你可以改變你的代碼。
確實,您的代碼版本更簡單,但也是有限的。它只搜索父親的第一次出現,然後測試妻子和孩子是否匹配。如果父親的名字重複多次,那麼代碼將返回False,除非該請求恰好是父親的第一次出現。事實上,如果父親的名字沒有重複,我們根本不需要測試其他列,因爲父親是獨一無二的。我們可以使用'Loop'和FindNext'方法,但有三列,它可能開始變得醜陋。 – user3561813 2015-02-23 18:25:18
這絕對是真的。我錯過了。非常感謝@ user3561813的信息。如果我們在當前的一個裏面嵌套2個以檢查母親和孩子怎麼辦? – Dubison 2015-02-24 07:27:12
沒有問題@Dubison。是的,您可以在搜索範圍內嵌入IF語句來檢查母親和孩子,但我認爲代碼變得更加混亂。首先,我們必須尋找父親。接下來,檢查母親。如果母親不正確,那麼就在父親身邊循環。如果母親是正確的,那麼'循環'在孩子們身上。我懷疑使用這些嵌套的'Loop'和'IF'語句會效率不高。 – user3561813 2015-02-24 13:53:20