逐行读取数据范围,动态增加

时间:2014-08-20 09:07:40

标签: excel-vba vba excel

我需要读取或清除特定范围内将动态增加的所有行。 问题是"选择的文件列表"表格范围未指定。通过浏览选择的新文件将添加到"选择的文件列表"动态。无法预测文件数量。

enter image description here

到目前为止我所尝试的是,跟踪浏览按钮单击并将文件路径添加到arraylist。 之后,(第9行,即起始行+ arraylist大小)得到表格末尾的行数。 但由于一些要求,我想从excel文件中读取文件。像-Read直到找到空白行或边框底部或东西。

我是VBA的新手,我不太清楚我在使用vba代码做什么,所以请善待:D

任何输入都将不胜感激。谢谢你宝贵的时间。

1 个答案:

答案 0 :(得分:1)

如果文件列表中没有空白单元格,您可以为标题单元格(“选定文件列表”)指定名称,例如“SelFiles”并做这样的事情......

Sub Test()
    ' call the function
    Debug.Print getSize(Range("SelFiles"), True)

End Sub

Function getSize(MyRange As Range, Optional HasHeader As Boolean = False)
Dim Idx As Integer

    Idx = 2
    Do While MyRange(Idx, 1) <> ""
        Idx = Idx + 1
    Loop
    If HasHeader Then
        getSize = Idx - 2
    Else
        getSize = Idx - 1
    End If
End Function

该函数使用一些抽象,您可以将它用于包括/排除范围的范围。您的应用程序中可能还有其他需要计算行数的区域,因此只需将循环添加到主Sub()的代码中,就可以使用函数。