「オフセット」内の数値を変更して、名前と数値を他のシートで必要な場所に移動しようとしましたが、 DavidとAndreaの電話番号は転送されません。ワークシート値で配列データを検索する - 特定の値を取得していません
Private Sub CommandButton1_Click()
Dim ws As Worksheet, bFound As Boolean, rFound As Range
Dim a As Long, aNames As Variant
aNames = Array("David", "Andrea", "Caroline")
With Worksheets("Sheet1").Range("A1:E30").Cells
For a = LBound(aNames) To UBound(aNames)
Set rFound = .Find(What:=aNames(a), MatchCase:=False, LookAt:=xlWhole, SearchFormat:=False)
If Not rFound Is Nothing Then
bFound = True
Worksheets("Report").Cells(Worksheets("Report").Rows.Count, 5).End(xlUp).Offset(3) = rFound.Value
Worksheets("Report").Cells(Worksheets("Report").Rows.Count, 6).End(xlUp).Offset(3, 1) = rFound.Offset(, 1).Value
End If
Next a
End With
End
If Not bFound Then
MsgBox "None of the sheets contains the names " & Chr(10) & _
"'" & Join(aNames, "', '") & "' in cells A1:E30.", vbInformation, "Not Found"
End If
End Sub
あなたが試してみました: をワークシート( "レポート")セル(ワークシート( "レポート")。行数、5)= rFound.Value の代わりに ワークシート( "レポート")セル(ワークシート(レポート))。行(行)カウント(5)).End(xlUp).Offset(3)= rFound.Value および: rFound.Offset 0、1)。値 もしも – Clyde
がまだキャロラインの電話番号 – VBABeginner
をピックアップしているのであれば、私がそこで何を考えているのか分かりません。それはワークシート上のすべての行数を返します。 1048576 - 返されると予想されるすべての名前を含むワークシート1の範囲( "A1:E30")のみを検索していますか? – Clyde