【发布时间】:2019-12-18 03:08:03
【问题描述】:
我想将从 C5 开始的所有填充单元格复制到不同工作表的 F 列。
我提到了另一个帖子:Excel - Combine multiple columns into one column 根据我的需要修改了代码。
Sub CombineColumns()
Dim Range1 As Range, iCol As Long, Range2 As Range, Check As Range, wks As Worksheets
Set Range1 = wks("T(M)").Range(Cells(5, 3), Cells(Cells(5, 3).End(xlDown).Row, Cells(5, 3).End(xlToRight).Column))
Set Check = wks("csv").Range("F1")
If IsEmpty(Check.Value) = True Then
Set Range2 = Check
Else
LastRow = wks("csv").Range("F" & Rows.Count).End(xlUp).Row
Set Range2 = wks("csv").Cells(LastRow, 6).Offset(1, 0)
End If
For iCol = 3 To Range1.Columns.Count
wks("T(M)").Range(Cells(5, iCol), Cells(Range1.Columns(iCol).Rows.Count, iCol)).Copy
wks("csv").Range2.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Next iCol
End Sub
但我一直收到错误消息
“对象不支持此方法或属性”
在粘贴步骤。在我尝试限定所有范围后,它说我没有设置对象变量。
非常感谢您的帮助!
【问题讨论】:
-
不应该
.Range2改成.Range吗?或者只使用Range2.而不使用工作表声明,因为 [ActiveSheet]Cells参考中已经暗示了它。 -
您好,我需要将复制的单元格粘贴到 Range2 中,这是另一个工作表(而不是当前活动工作表)的 F 列中的第一个空单元格
-
你真的需要用一张表来限定每个范围和单元格对象,否则你会遇到这样的各种混乱。
-
由于 Range2 是可变的,已设置为工作表 csv 上的单元格,因此删除工作表前缀。即
Range2.PasteSpecial ...