变体 /迭代 / VBA



我正在尝试访问我正在通过Excel表上范围创建的变体的元素。基于"位置"表上的行数,我的范围中的行数是动态的,因此我只是声明一个变体,然后将其设置为相关范围。我使用与LOC前缀前缀的4个变量来查找边界,并在创建最终范围后设置变体。

但是,我无法通过多次尝试进行迭代。我敢肯定,我缺少一些基本的东西,但是尚未为每个迭代迭代而制造的lbound/ubound结构。变体数据是数字和文本的混合物。

您对我敢肯定我缺少的简单/简单事物的想法会受到赞赏。我了解每个人都是只读的,并且更喜欢阅读/写作,但是现在只想确保我可以通过此数组(真的,矩阵]

完全迭代
Sub Prefill_Work_Sub()
    ' Variables
    Dim LocRowStart As Range
    Dim LocRowEnd As Range
    Dim LocSheetRange As Range
    Dim EndColInt As Integer
    Dim LocationsVariant As Variant
    ' Ending Column Index Set
    EndColInt = 72
    ' First, make range of location sheet
    Set LocRowStart = Worksheets("Locations").Range("A2")
    Set LocRowEnd = Worksheets("Locations").Cells(Rows.Count, LocRowStart.Column).End(xlUp)
    Set LocColEnd = Worksheets("Locations").Cells(LocRowEnd.row, EndColInt)
    Set LocSheetRange = Worksheets("Locations").Range(LocRowStart, LocColEnd)
    Set LocationsVariant = LocSheetRange

    ' Verify the range address of the variant
    ' Debug.Print LocSheetRange.Address
    For i = LBound(LocationsVariant) To UBound(LocationsVariant)
        Debug.Print LocationsVariant(i, 1)
    Next i
    ' Let's try to iterate through variant for a sec
    ' Debug.Print LocationsVariant(1, 1)
    ' Debug.Print LocationsVariant(2, 1)

End Sub

您的设置LocColEnd等于范围,然后将其作为列号参数传递给下一行中的范围函数。但是列号参数必须是一个整数。

Set LocColEnd = Worksheets("Locations").Cells(LocRowEnd.row, EndColInt)
Set LocSheetRange = Worksheets("Locations").Range(LocRowStart, LocColEnd)

您有一些纠正此问题的选项。最好的可能是仅将EndColInt用作列的列数参数:

Set LocSheetRange = Worksheets("Locations").Range(LocRowStart, EndColInt)

这条线看起来也令人怀疑。我建议将行属性附加到末端:

LocRowEnd = Worksheets("Locations").Cells(Rows.Count, LocRowStart.Column).End(xlUp).Row

相关内容

  • 没有找到相关文章

最新更新