运行“粘贴”时会显示VBA运行时错误438
我只是熟悉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”对象不支持此porperty或方法“出现在”Selection.Paste“行时。 什么问题?:(我试过使用粘贴特殊的,激活工作表和select单元格(不是范围),使用Cstr,但没有任何改变
尝试Selection.PasteSpecial xlPasteAll
Paste
本身可以在几个对象上工作,最显着的就是Worksheet
但是不在Range
对象上,这就是你的Selection
。
要粘贴到一个Range
你真的必须使用PasteSpecial
方法及其'可用的参数,如xlPasteAll
; xlPasteValues
; xlPasteFormulas
; xlPasteFormats
和其他,你可以通过按F1
来查看光标在VBE的PasteSpecial
中。
在代码中replace这两行
ActiveSheet.Cells(lFirstRow, 2).Select Selection.Paste
通过
Cells(lFirstRow, 2).Select Activesheet.paste
你的代码将完美地工作
有关在vba中使用粘贴和粘贴的重要注意事项
然后从任何地方复制任何范围
-
粘贴特殊方法(
Sheets.Cells/Range.PasteSpecial
)表格(“每日短缺”)激活
表(“每日短缺”)。细胞(m,1)。 PasteSpecial Paste:= xlPasteValues
一个例子 –
会抛出错误
Sheets ("June"). Range ("A10").Select ActiveSheet.PasteSpecial Paste: = xlPasteValues
这将工作完美无瑕
Sheets ("June"). Range ("A10").PasteSpecial Paste: = xlPasteValues
-
粘贴方法(
ActiveSheet.Paste
)表格(“六月”)。 范围(“A10”)。select
ActiveSheet.Paste