私は、VLOOKUPのように振る舞いますが、より広いスケールでマクロを作成することを任されています。基本的には、マクロは列の先頭の値を見てから別のシート列の値を検索します。その値が見つかった場合は、セルの値をすぐ右に返します。完了すると、重複する値とその列の空白セルが削除されます。1枚の値で右に戻り値
次に、次の列にループし、参照する値がなくなるまで繰り返すコードが必要です。
データの最初の列は完全に取得できますが、後続の列(ループまたは直接参照)では機能しないようです。誰かが私を正しい方向に向けることができますか? (各行の大量のデータのために、10行のループをテストするために最終行を無効にしています。
Option Explicit
Sub ReturnActions()
Dim itemNumber As String
Dim finalRow As Integer
Dim i As Integer
Dim ws1 As Object
Dim ws2 As Object
Set ws1 = Worksheets("Intermediate_Data")
Set ws2 = Worksheets("Final Workings")
ws2.Activate
Range("A2").Select
itemNumber = ws1.Range("A1").value
finalRow = ws2.Range(ActiveCell, ActiveCell.End(xlUp)).Select
ws2.Activate
'For i = 2 To finalRow
For i = 2 To ws2.Range("A10").Row
If Cells(i, 1) = itemNumber Then
ws2.Cells(i, 2).Copy
ws1.Range("A100000").End(xlUp).Offset(1, 0).PasteSpecial 'Transpose:=True
End If
Next i
'Remove duplicates and blanks from data
With ws1.Range("A:A")
.value = .value
.RemoveDuplicates Columns:=1, Header:=xlYes
On Error Resume Next
.SpecialCells(xlCellTypeBlanks).Delete xlShiftUp
On Error GoTo 0
End With
Range("A2").Offset(0, 1).Select
'Select data worksheet
ws1.Activate
'Select cell A1
Range("A1").Select
'Select next column item number
itemNumber = ActiveCell.Offset(0, 1).Select
'Execute code
ws2.Activate
'For i = 2 To finalRow
For i = 2 To ws2.Range("B10").Row
If Cells(i, 2) = itemNumber Then
ws2.Cells(i, 3).Copy
ws1.Range("B100000").End(xlUp).Offset(1, 0).PasteSpecial 'Transpose:=True
End If
Next i
With ws1.Range("B:B")
.value = .value
.RemoveDuplicates Columns:=1, Header:=xlYes
On Error Resume Next
.SpecialCells(xlCellTypeBlanks).Delete xlShiftUp
On Error GoTo 0
End With
End Sub
ジェームズ、私はあなたがこの介して動作を支援したいと思いますが、私はトラブル発見を抱えているところあなたのコードにあなたがする試み次の列のデータを処理します。何かガイダンスをくれますか? –
こんにちはジム、次の列を開始するようにしました:Range( "A2")。Offset(0、1).Select。ここでは、データの整理が完了したら、次の列を参照して検索を開始しようとしました。 – jeden