我正在尝试从范围中复制一些数据,但是我无法使其按我需要的方式工作。
我需要xlCellTypeConstants
才能跳过该范围内的空白。
我还需要xlCellTypeFormulas
复制具有公式范围内的单元格
但是当我运行宏时,出现以下错误:“对象不支持此属性或方法”,在以下代码行中:
Set SumRange = .Range("B5:B29").Union(.SpecialCells(xlCellTypeConstants), .SpecialCells(xlCellTypeFormulas))
我需要这样做,因为我正在复制数据并通过转置粘贴它,因为我需要在同一行中。
任何想法都将不胜感激。
Sub WorksheetLoopSummary()
Dim WS_Count As Integer
Dim i As Integer
Dim LastRow As Long
Dim SumRange As Range
WS_Count = ActiveWorkbook.Worksheets.Count
For i = 5 To WS_Count
With Worksheets(i)
Set SumRange = .Range("B5:B29").Union(.SpecialCells(xlCellTypeConstants), .SpecialCells(xlCellTypeFormulas))
SumRange.Copy
LastRow = Sheets("Summary").Range("a65536").End(xlUp).row
Worksheets("Summary").Range("A" & LastRow + 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With
Next i
End Sub
答案 0 :(得分:-1)
联合是Application对象的一种方法。
您可以执行以下操作(根据需要更改Activesheet)
With ActiveSheet.Range("B5:B29")
Set SumRange = Union(.SpecialCells(xlCellTypeConstants), .SpecialCells(xlCellTypeFormulas))
End With
正如@chrisneilsen所提到的:如果不满足这些条件,则将引发错误,需要处理。常见的检查包括在尝试使用SpecialCells之前检查范围是否为空,以及测试是否存在公式。