在Excel VBA中选择可变范围内的所有非空单元格

时间:2016-07-06 20:03:25

标签: excel vba excel-vba select

我在Excel上有数据集。从B列开始,它具有从B3到周期性变大的可变数的连续数据(今天它是B114,但明天数据可能会延伸到B116)。单元格B中的数据是连续的,永远不会被删除。对于B列中的每一行连续数据,我也想选择B-AG列的行。但是,B之后的行没有连续数据。

例如:从B3到B120有连续数据。我想选择范围B3:AG120。

我在VBA中编写的代码无效。它正确地停在B120(在这个例子中),然而,一旦它到达C-AG列中的非连续数据,它就会吓坏并选择超过120的行。我不肯为什么这段代码不起作用,任何帮助都是非常感谢!

对于记录,工作表中几乎每个单元格都有公式。但是,只有一些公式用数据填充单元格。我想选择每个单元格,无论它是否填充了数据,如果它在我的范围内。否则,我不想选择它。例如,过去的B120中有空单元格,其中包含公式。我不想在我的范围内包括那些。但是如果D40中有一个空单元格(在B3和AG120之间),我确实想在选择中包含它。

Forms

1 个答案:

答案 0 :(得分:4)

Dim lastVal As Range, sht As Worksheet

Set sht = Sheets("Sortable(2)")

Set lastVal = sht.Columns(2).Find("*", sht.Cells(1, 2), xlValues, _
                                xlPart, xlByColumns, xlPrevious)

Debug.Print lastVal.Address

sht.Range("B2", lastVal).Resize(, 32).Select 'select B:AG