2

フィルタリングされたリスト内の C(Number):D(Number) の値にアクセスしようとしていますが、MsgBox が表示されないため、何か間違っているようです。

'Filter only numeric values 
With MaterialListSheet
        .AutoFilterMode = False
        .Range("B1").AutoFilter Field:=1, Criteria1:="0*"
    End With

Set rangeInventory = InventorySheet.Range("N1:N" & Rows.Count)
' I had Set rangeMaterialList = MaterialListSheet.Range("B1:B" & Rows.Count) in the beginning but I realized If I need C and D i'm only selecting B 

    Set rangeMaterialList = MaterialListSheet.Range("B1:F" & Rows.Count)

    For Each CellML In rangeMaterialList.SpecialCells(xlCellTypeVisible)
        BomCodesToSplit = CellML.Range("C" & Rows.Row & ":D" & Rows.Row).Values
        MsgBox BomCodesToSplit
        For Each CellI In rangeInventory.SpecialCells(xlCellTypeVisible)

        Next CellI

Next CellML

これを試しましたが、運がありません:

BomCodesToSplit = MaterialListSheet.Range("C" & Rows.Row & ":D" & Rows.Row).Values

選択したい

C1:D1
C2:D2
C3:D3
.
.
.

このような意味なので、ループインデックスに応じて選択します

Cn:Dn

他のいくつかのプログラミング言語では、ループのインデックスを使用しますが、VBA は初めてなので、これを行う方法がわかりません。

これを達成する方法は?

4

1 に答える 1

2

何をしているのか完全にはわかりませんが、反復変数プロパティを使用できます。

ある範囲を反復するループではfor each、範囲型変数を使用してインテリセンスを取得するのが最善です

Dim cell as Range
for each cell in Range("A1:A10")
    debug.? cell.Value, cell.Address, cell.Row, cell.Column
next

注: を入力するcell.と、作業中のオブジェクトで現在使用できるプロパティのみを一覧表示するインテリセンスが表示されます。

于 2013-10-28T16:22:17.503 に答える