如何访问过滤列表中的范围来检索值? VBA

我试图访问过滤列表中的C(数字):D(数字)的值,但我似乎做错了什么,因为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 

我想select

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

意思是这样的,所以它根据循环索引来select它

 Cn:Dn 

在其他一些编程语言中,我将使用循环的索引,但由于我是VBA新手,我不知道如何做到这一点。

如何做到这一点?

不完全确定你在做什么,但你可以使用迭代variables属性。

for each循环迭代一定范围内,最好使用Rangetypesvariables来获得智能感知

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

注意:当你inputcell. 您将获得一个智能感知,该智能感知仅列出您正在使用的对象当前可用的属性。