0

Excel 2010 VBA で vlookup を使用すると問題が発生します

空白の列の各セルをループして、データ ソースから隣接する列の値を検索したいと考えています。これをループで実行したい。私は多くのフォーラムを見てきましたが、これを適切に機能させることができます。

ここに私のコードのサンプルがあります

Sheets("NPT(hrs)").Activate
Dim NumberRows As Integer
NumberRows = Range("a:a").Find("*", Range("A1"), SearchDirection:=xlPrevious).Row
NumberRows = NumberRows

ActiveCell.Offset(2, 69).Activate
For RowNum = 1 To NumberRows
    If Len(Range("BQ1").Offset(RowNum, 0)) = 0 Then

        ActiveCell.Value = Application.WorksheetFunction.VLookup(Cells(RowNum, 68), "Equipment!A:K", 7, False)

        ActiveCell.Offset(1, 0).Activate
    '' This approach never workedXXX
    'v = WorksheetFunction.VLookup(Cells(RowNum, 68), "Equipment!A:K", 7, False)
           ' ActiveSheet.Cells(RowNum , 69).Formula = "=VLOOKUP(Cells(RowNum,68) ,Equipment!A:K,7,false)"
    'ActiveCell.Text = "v"


    'MsgBox "fin work?"
End If
4

1 に答える 1

1

これは、あなたが得ようとしていると思うものを複製するために私が書いた簡単なコードブロックです。

サンプルデータをいくつか作成しました。右側のルックアップには単価があり、左側には「合計価格」列にいくつかのエントリが欠落しているテーブルがあります。

サンプルデータのExcelスクリーンショット

以下のコードブロックは、列Cのセルをループし、空白のセルが見つかるたびにvlookupを実行します。

Sub FillInBlanks()

  Dim rng As Range
  Set rng = ActiveSheet.Range("C2:C21")

  For Each cell In rng
    If IsEmpty(cell) Then
        cell.FormulaR1C1 = "=VLOOKUP(RC[-2],R1C7:R11C8,2,FALSE)*RC[-1]"
    End If
  Next cell

End Sub

このマクロを実行すると、これが得られるはずです

Excel出力

于 2013-02-06T18:33:39.463 に答える