当我尝试在单个列中组合范围但两者之间存在间隙时,由于代码有问题,它会重新开始。以下是我一直试图运行的代码:
Set Rrng = ThisWorkbook.Worksheets(Sheet9.Name).Range("D14:D19").SpecialCells(xlCellTypeVisible)
If Not IsEmpty(ThisWorkbook.Worksheets(Sheet9.Name).Range("D21")) Then
Set Rrng = Union(Rrng, ThisWorkbook.Worksheets(Sheet9.Name).Range("D20:D22").SpecialCells(xlCellTypeVisible))
End If
If Not IsEmpty(ThisWorkbook.Worksheets(Sheet9.Name).Range("D24")) Then
Set Rrng = Union(Rrng, ThisWorkbook.Worksheets(Sheet9.Name).Range("D23:D25").SpecialCells(xlCellTypeVisible))
End If
If Not IsEmpty(ThisWorkbook.Worksheets(Sheet9.Name).Range("D27")) Then
Set Rrng = Union(Rrng, ThisWorkbook.Worksheets(Sheet9.Name).Range("D26:D28").SpecialCells(xlCellTypeVisible))
End If
Set Rrng = Union(Rrng, ThisWorkbook.Worksheets(Sheet9.Name).Range("D29:D" & LastRow).SpecialCells(xlCellTypeVisible))
我想这应该通过改编到细胞来解决,但我不确定?
答案 0 :(得分:0)
是否存在妨碍您简单使用
的内容set rRng = range("d14:d" & lastrow).SpecialCells(xlCellTypeConstants)
答案 1 :(得分:-1)
假设LastRow是从某个Range引用获得的行号(例如:lastrow = ThisWorkbook.Worksheets(Sheet9.Name).Range("D65536").end(xlUp).Row
)
,这将是一个整数,但是像这样引用单元格需要一个字符串变量。因此它应该如下所示:
Set Rrng = Union(Rrng, ThisWorkbook.Worksheets(Sheet9.Name).Range("D29:D" & CStr(LastRow)).SpecialCells(xlCellTypeVisible))