我刚刚熟悉VBA和我的代码
For k = 3 To ThisWorkbook.Sheets.Count
ThisWorkbook.Sheets(k).Activate
ActiveSheet.Cells(11, 2).Select
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.Range("A5:" & "A" & CStr(lLastRow)).Copy
' ThisWorkbook.Sheets(1).Cells("B" & CStr(lFirstRow) & ":B" & CStr(lLastRow)).Select
ThisWorkbook.Sheets(1).Activate
ActiveSheet.Cells(lFirstRow, 2).Select
Selection.Paste
'Selection.PasteSpecial Paste:=xlPasteValues
'Selection.PasteSpecial Paste:=xlPasteFormats
lFirstRow = lFirstRow + lLastRow
Next k
使"运行时错误438.对象不支持此特性或方法"出现在"Selection.Paste"行的后面。有什么问题吗? 我尝试使用特殊粘贴、激活工作表和选择单元格(不是区域)、使用CSTR,但没有任何变化
尝试Selection.PasteSpecial xlPasteAll
Paste
本身作用于多个对象,最明显的是Worksheet
,但不作用于Range
对象,而Selection
就是Selection
。
要粘贴到Range
,您确实必须使用PasteSpecial
方法及其‘可用参数’,如xlPasteAll
;xlPasteValues
;xlPasteFormulas
;xlPasteFormats
,当光标位于VBE中的PasteSpecial
时按F1
即可查看。