我的问题在原则上与Looping on URLs from Excel file using UiPath是相同的目标 (从具有ReadRange的Excel文件中进行迭代的意义上讲)
我想遍历excel文件-当然可以使用Excel Application Scope来完成。 但是,当我将Excel文件读入数据表时-我需要给它一个类似“ D2:K30”的范围。
“ K30”将是我读入的范围的结尾-那么我如何设法获得特定excel文件的“结尾”?
使用VBA,我只需要遍历excel文件并说
'如果行内容为“”'
,然后我会知道何时出现第一个EMPTY行。
也许我第一个发现的空行将保存在变量“ emptyRow”中-然后我可以说
读取范围“ D2:K” + emptyRow-1
因此,我的目标是在不将空行复制到数据表的意义上,使该读取范围“动态”。
此外,因为-当我将该数据表复制到另一个excel文件中时-我想用不同的颜色为特定范围着色,因此我需要每个范围的特定长度,否则我也会得到空行。
问候,弗朗兹
答案 0 :(得分:0)
有几种方法可以做到这一点:
一种非常简单的方法是读取一个足够大的范围(例如A1:C10000
),然后在该范围上循环以找到第一个空单元格,此时您将退出循环。有一个明显的缺点-这根本不是很有效。
另一种选择是使用Invoke VBA活动,然后使用类似以下的内容:
Function GetRowCount()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
Dim k As Long
k = sh.Range("A1", sh.Range("A1").End(xlDown)).Rows.Count
GetRowCount = k
End function
这应该可以正常工作,但是需要您使用Excel范围(这需要安装Excel)。
这可能是我最喜欢的一个,因为您可以简单地使用Workbook活动(即,无需安装Excel)。但是,它要求您将数据存储在Excel represented as a table中。这是一个示例-Get Table Range活动返回一个范围(例如字符串,例如“ A1:C42”,然后在Read Range活动中使用。