我有一个命名范围,例如GroupedCells:Sheet1 $ C $ 1,Sheet1 $ D $ 1,Sheet1 $ G $ 1。我想将这些行中的数据保存到最后填充的行。
代码:
Sheets("Sheet1").Select
Range("GroupedCells").Select
Range(Selection, Selection.End(xlDown)).Select
例如,它仅选择Sheet1 $ C $ 1到Sheet1 $ C $ 10,因此不起作用。我需要它选择Sheet1 $ C $ 1:Sheet1 $ C $ 10,Sheet1 $ D $ 1:Sheet1 $ D $ 10,Sheet1 $ G $ 1:Sheet1 $ G $ 10。如何使用Namedrange进行此操作。
尝试,
Sub test2()
Dim rngDB As Range
Dim rngU As Range
Dim ar As Range
Set rngDB = Range("GroupedCells")
For Each ar In rngDB.Areas
If rngU Is Nothing Then
Set rngU = Range(ar, ar.End(xlDown))
Else
Set rngU = Union(rngU, Range(ar, ar.End(xlDown)))
End If
Next
If rngU Is Nothing Then
Else
rngU.Select
End If
End Sub
请尝试使用此代码:
Sub testSelectNamedRange()
Dim rng As Range, lastRow As Long, rng1 As Range
Dim rng2 As Range, rng3 As Range, arrRng As Variant
Set rng = Range("GroupedCells") 'put the named range in a variable
arrRng = Split(rng.address, ",") 'extract each cell addres from the above range
lastRow = Cells(Rows.count, rng.Column).End(xlUp).Row 'determine the last row of the first rng column
Set rng1 = Range(Range(arrRng(0)), Cells(lastRow, Range(arrRng(0)).Column)) 'create a range for each column
Set rng2 = Range(Range(arrRng(1)), Cells(lastRow, Range(arrRng(1)).Column))
Set rng3 = Range(Range(arrRng(2)), Cells(lastRow, Range(arrRng(2)).Column))
Union(rng1, rng2, rng3).Select 'select the union of the above created ranges
End Sub