Excel中的非空单元格Range C#
我想从当前单元格中select所有非空单元格到行的最后一个单元格。
如果我们使用
currentRange.End[XlDirection.xlToRight]
当非空单元不是连续的链接时,这不是一个好方法。 例如,单元格A1,A2,A3,A5,A6不为空,那么RangeA1.End[XlDirection.xlToRight]
只能达到A3,即连接到RangeA1的最后一个非空单元格。
另外一个select:
CreateRange(currentRange, lastRangePossibleinRow).SpecialCells(...)
我有3个问题:
-
currentRange.End[XlDirection.xlToRight]
看起来像一个不可靠的解决scheme。 例如,如果currentRange为空,则无论如何(本身)将返回1个单元格。 -
如何有效地将当前单元格中的select扩展到Row中的最后一个单元格?
CreateRange(currentRange, get_range(currentRange.Row + sheet.Columns.Count.ToString()))
? 也许有更好的解决办法。 -
如何获得这个范围内不是空的单元格的集合?
.SpecialCells(xlCellTypeConstants | xlCellTypeFormulas)
将不起作用,例如,如果找不到,则.SpecialCells(xlCellTypeConstants)
将抛出一个exception:没有find单元格。
我是VBE的新手,但我认为一个解决方法是
- 瞄准你期望非空白的范围
- 遍历它们
- 检查是否空白
- 以
RC[#]
forms存储数组中错误数列的列号 - 然后select
Range("Array(1),Array(2),...").Select
。
对不起,这个伪代码…迟了两个月。 = /