私はVBAコーディングで新しく、この懸念に私を助けてくれますか?Excel VBAコーディング
現在、列AJの特定のテキスト(「Chase」など)を検索するマクロを作成しています。見つかった場合は、列Aのエンティティを検索して別のシートに貼り付けます。
事前に感謝します!
私はVBAコーディングで新しく、この懸念に私を助けてくれますか?Excel VBAコーディング
現在、列AJの特定のテキスト(「Chase」など)を検索するマクロを作成しています。見つかった場合は、列Aのエンティティを検索して別のシートに貼り付けます。
事前に感謝します!
これを試してください。コメントから取りました。取得する可能性のあるエラーは、VLookup式のためです。 VLookup式がどのように機能しているかを調べる必要があります。
=VLOOKUP(Value you want to look up, range where you want to lookup the value, the column number in the range containing the return value, Exact Match or Approximate Match – indicated as 0/FALSE or 1/TRUE).
この数式は「チェック」を検索しています。取得したエラーが検索対象の範囲にある場合、AEからAへの列である「AE7:A2693」を検索しています。後方検索はできませんので、A2693:AE7である必要があります。正しい範囲を見つけて、下のコードで変更する必要があります。
カラム31に戻り値が含まれていますか?
Sub EachLoopExample()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim MyCell As Range
Dim sResult As String
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet3")
For Each MyCell In ws1.Range("AE:AE")
If MyCell.Value = "check" Then
sResult = Application.WorksheetFunction.VLookup("check", ws1.Range("B1:C3"), 1, False)
ws2.Range("A2").Value = sResult
End If
Next MyCell
End Sub
こんにちはNiclas、私は上記のコーディング作業をすることができます、あなたの指示を非常に感謝し、助言する。しかし、上記のコーディングでは、1つのセル値しかルックアップできません。たとえば、カラムAKに「チェイス」の値を持つセルが3つある場合、指定されたシートに最初の行のみがコピーされます。上記のコーディングで何が変わる可能性があるのかを親切にアドバイスしてもらえますか? – Irvin
使用している正確なVLookup式をデータ範囲とともに投稿してください。私はあなたが何をしようとしているのかまだよく分かりません。このVLookup数式をSheet3に挿入したい(マッチを見るにはクリーンシート)が、Sheet1には何がありますか? AEはチェック、AKは追いかけですか? – Niclas
質問を再読してください。あなたが望むのは、例えば上を向けることです。列AJの "Chase"を探し、見つかった場合は、Sheet3列Aの列Aの値(OC_81など)を返します。 – Niclas
Sub EachLoop()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim FinalRow As Integer
Dim i As Integer
Set ws1 = Sheet1
Set ws2 = Sheet3
ws1.Select
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 7 To FinalRow
If Cells(i, 31) = "check" Then
Range(Cells(i, 1), Cells(i, 7)).Copy
ws2.Select
Range("A200").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ws1.Select
End If
Next i
ws2.Select
Range("B2").Select
Call EachLoop2
End Sub
Sub EachLoop2()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim FinalRow As Integer
Dim i As Integer
Set ws1 = Sheet1
Set ws2 = Sheet3
ws1.Select
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 7 To FinalRow
If Cells(i, 32) = "check" Then
Range(Cells(i, 1), Cells(i, 13)).Copy
ws2.Select
Range("H200").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ws1.Select
End If
Next i
ws2.Select
Range("B2").Select
Call EachLoop2_ext
End Sub
Sub EachLoop2_ext()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim FinalRow As Integer
Dim i As Integer
Set ws1 = Sheet1
Set ws2 = Sheet3
ws2.Select
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To FinalRow
If Range(Cells(i, 9), Cells(i, 13)) = "" Then
ws2.Select
Range(Cells(i, 9), Cells(i, 13)).ClearContents
Range(Cells(i, 14), Cells(i, 20)).Cut
Range("I200").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
Else
ws2.Select
Range(Cells(i, 9), Cells(i, 13)).ClearContents
Range(Cells(i, 14), Cells(i, 20)).Cut
Range("I200").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
End If
Next i
ws2.Select
Range("I2").Select
End Sub
これまであなたが持っているコードを投稿してください。 – jsheeran
おそらく 'VLOOKUP'機能があなたが探しているものです! – RCaetano
サブEachLoopExample()ワークシート、ws1.Rangeの各MyCell(「AEについてWS1 =シート( "シート1") 設定WS2 =シート( "シート3") ワーク セットとしてWS2として 薄暗いWS1:AE ") MyCell.Value =" check "の場合 sResult = Application.WorksheetFunction.VLookup(" check "、ws1.Cells(" AE7:A2693 ")、31)。 ws2.Range(" A2 ")を選択します。 Selection.Value 終了の場合 次MyCell End Sub – Irvin