vba - 如何访问过滤列表内的范围以检索值?编程语言

标签 vba excel

我正在尝试访问过滤列表中的 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 新手,所以我不知道如何执行此操作。

如何实现这一目标?

最佳答案

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

foreach 循环中迭代某个范围时,最好使用 Range 类型变量来获取智能感知

示例

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

注意:当您键入单元格时。您会得到一个智能感知,它仅列出您正在使用的对象当前可用的属性。

关于vba - 如何访问过滤列表内的范围以检索值?编程语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639832/

相关文章:

vba - Excel 2013 中的扩展工作表选择 - VBA

VBA 代码循环遍历 Outlook 中的每个文件夹和子文件夹

excel - 如何匹配Excel中不同工作表中的多列

c# - 如何使用 C# 在 Excel 中选择现有图表

在多个子文件夹中搜索文件的VBA宏

vba - Excel VBA 将多行数据连接成一行

excel - 使用 VBA 通过 Word 控制 Excel 时遇到问题;后期绑定(bind)和早期绑定(bind)不起作用

html - 如果同一行中的单元格值等于 Excel 工作簿中的值,如何单击 HTML 表中的 href

excel - 如何与其他人一起度过一段时间

arrays - 将两个不相邻的列分组为 Excel VBA 脚本的二维数组