Excel VBA如何在dynamic范围内select所有单元格的颜色索引不为0

我在工作表中embedded了一个SAP Report,它使用另一个工作表中定义的variables通过macros刷新。 这一切工作正常,但我有麻烦select报告产生的数据。

报告的标题总是落在这个范围内("A17:K17") ,但结果行会有所不同,从而使我想要捕捉的总范围从("A17:K18")(A17:K1000")

我已经尝试过的解决scheme没有奏效,我认为是因为结果数据几乎没有一致性,它是文本和数字的混合体,在行和列中都有空单元格。 包括偶尔完全空的行。 这意味着我已经尝试过的方法达到了它认为已经到达填充行的末尾的地步 – 但是它没有。

整个报告中唯一保持不变的因素是,我要捕获的范围内的单元格都默认填充了颜色,并且范围之外的任何内容都未填充。

对我来说,最简单的解决scheme是使用VBA来select下面的所有单元格,包括("A17:K17")颜色索引不是0(空白?)的标题,而不pipe它们的内容,因为我不介意捕获空单元格。 除了我不知道如何做到这一点。

在这一点上,我只想select这个范围,我还没有决定是否要将它复制到一个新的工作簿或电子邮件,但我可以做。 我刚刚select了一个死胡同。

确切地不确定你需要什么,但这里有一个解决scheme。 值得注意的是,ColorIndex和Color属性在没有填充的情况下不一定是零,所以如果您只是将blankCell更改为您定义的填充为空白的单元格,那么您将很好。

 Sub test() Set blankCell = Range("A1") ' change this to a cell that you define to be blank blankIndex = blankCell.Interior.Color Set cellsDesired = Range("A17:K17") For Each cell In Range("A17:K1000") If cell.Interior.Color <> blankIndex Then Set cellsDesired = Application.Union(cellsDesired, Range(cell.Address)) End If Next cell cellsDesired.Select End Sub