【发布时间】:2016-07-06 20:03:25
【问题描述】:
我有我在 Excel 上的数据集。从 B 列开始,它有从 B3 到周期性变大的变量数的连续数据(例如,今天是 B114,但明天数据可能会扩展到 B116)。单元格 B 中的数据是连续的,永远不会被删除。对于 B 列中的每一行连续数据,我也想选择 B-AG 列的行。但是,B 之后的行没有连续数据。
例如:有从B3到B120的连续数据。我想选择范围 B3:AG120。
我在 VBA 中编写的用于执行此操作的代码不起作用。它正确地停在 B120(在本例中),但是,一旦它到达 C-AG 列中的非连续数据,它就会吓坏并选择超过 120 的行。我不确定为什么这段代码不起作用,任何帮助都是非常感谢!
作为记录,工作表中几乎每个单元格中都有公式。但是,只有一些公式会用数据填充单元格。我想选择每个单元格,无论它是否在我的范围内填充数据。否则,我不想选择它。例如,B120 之后有空单元格,其中包含公式。我不想将这些包括在我的范围内。但如果 D40 中有一个空单元格(在 B3 和 AG120 之间),我确实希望将其包含在选择中。
Dim LR As Long, cell As Range, rng As Range
With Sheets("Sortable(2)")
LR = .Range("B" & Rows.Count).End(xlUp).Row
For Each cell In .Range("B3:B" & LR)
If cell.Value <> "" Then
If rng Is Nothing Then
Set rng = cell
Else
Set rng = Union(rng, cell)
End If
End If
Next cell
rng.Select
End With
【问题讨论】:
-
.Range("B" & Rows.Count).End(xlUp).Row将计算带有公式的单元格。 -
是的,我意识到了。这就是为什么它后面有一个 if 语句,如果它是空的,它不会将它添加到范围中
-
您是否尝试过使用 cell.Text "" insead of cell.Value ""?
-
感谢您的帮助,但 cell.Text 返回的结果与 cell.Value 相同