我正在编写一个代码来一个接一个地复制动态范围中的值。如果其中一个动态范围为空,则此代码将失败。有办法解决这个问题吗?
Dim r1, r2, r3 As Integer
Range("Abandoned").Copy
Range("C110").PasteSpecial xlPasteValues
r1 = Range("Abandoned").Cells.Count
Range("Prod75").Copy
Range("C" & 110 + r1).PasteSpecial xlPasteValues
r2 = r1 + Range("Prod75").Cells.Count
Range("Prod5075").Copy
Range("C" & 110 + r2).PasteSpecial xlPasteValues
r3 = r2 + Range("Prod5075").Cells.Count
Range("Prod2550").Copy
Range("C" & 110 + r3).PasteSpecial xlPasteValues
答案 0 :(得分:0)
将命名范围放在数组中。
如果数组是Nothing,则循环测试每个数组。
然后将值直接分配给第一个为空的单元格。
Dim nameArr()
nameArr = Array("Abandoned", "Prod75", "Prod5075", "Prod2550")
With Worksheets("Sheet1") 'Change to your output sheet
Dim i As Long
For i = LBound(nameArr) To UBound(nameArr)
If Not Range(nameArr(i)) Is Nothing Then
.Cells(.Rows.Count, 3).End(xlUp).Offset(1).Resize(Range(nameArr(i)).Rows, Range(nameArr(i)).coloumns).Value = Range(nameArr(i)).Value
End If
Next i
End With