0

Excelに2枚あります。Sheet2には、データベースソースからのすべての出力データテーブルがあります。特定のデータレコードをsheet2からsheet1に転送できるVBAをコーディングしようとしています。約4フィールド列の特定のレコードの行データが、転送するデータ。

たとえば、シート2に次のような一連のデータがあります

            LIMIT    SALES    REGION   LOCATION  ITEM
            422234   4768.24  HR       1         BUIL
            343222   190.73   BP       2         CON
            432220   1494.62  OP       1         EQ
            343332   1302.66  BP       1         AR
            433322   3881.67  BP       1         NO

基準は、アイテムBUILの販売レコードは、sheet2の行が領域 "OP"、場所 "2"を示している場合にのみ、sheet1の特定のセルに表示できるということです。シート1に表示する制限レコードにも同じルールが適用されます。Sheet1には、列としての制限と売上、および行としてのアイテムがあります。

4

1 に答える 1

0

以下は、開始するのに役立つ場合があります。

Sheet 2範囲 A1で始まるデータベース データ (図のように)Sheet1があり、次のようになっているとします。

    A        B        C
1   Item     Limit    Sales
2   BUIL
3   CON
4   EQ
    etc...

次のコードは、アイテムのリストを調べSheet1て、データに一致が見つかったSheet2場合は、条件が満たされているかどうかを確認します。つまり、 Region= "OP" およびLoaction= 2:

Sub GetSalesAndLimit()
    Dim items As Range, entries As Range, item As Range, entry As Range, row As Long

    Set items = Range("A2:A" & Range("A2").End(xlDown).row)
    Set entries = Worksheets("Sheet2").Range("E2:E" & Worksheets("Sheet2").Range("E2").End(xlDown).row)

    For Each item In items
        For Each entry In entries
            With Worksheets("Sheet2")
                If entry = item Then
                    If entry.Offset(0, -2) = "OP" And entry.Offset(0, -1) = 2 Then 'Criteria is region = 'OP' and Loaction = 2
                        item.Offset(0, 1) = entry.Offset(0, -4) 'Limit
                        item.Offset(0, 2) = entry.Offset(0, -3) 'Sales
                    End If
                End If
            End With
        Next entry
    Next item
End Sub
于 2012-04-17T15:47:00.773 に答える