我正在尝试编写宏以将单元格(基于条件)从一张纸复制到另一张纸。当我运行宏时,出现“ Range类的pasteSpecial方法失败”错误。
我试图解决它。但是我做不到。
Sub update_tuning()
Dim tun_num, tun_select, source1, target1 As Range
Dim r, lr As Long
Sheets("Calc").Select
Set tun_num = Range("B2")
If tun_num <> Null Then
Sheets("Calc").Select
Range("C22:BE22").Select
Selection.Copy
End If
Sheets("DATA_Lbf_ft").Select
lr = Sheets("DATA_Lbf_ft").Range("B3:B1803").Count
For r = 3 To lr
If Range("B" & r).Value = tun_num Then
Exit For
End If
Next r
Sheets("DATA_Lbf_ft").Range("B" & r).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
请提供您的意见以解决该问题。
.Copy
与之间的操作过多.PasteSpecial
。在.CutCopyMode
(当你通常会看到工作表上的复制单元格周围闪烁边框)由其他操作取消。
确定目的地后,最好复制并粘贴。
For r = 3 To lr
If Range("B" & r).Value = tun_num Then
Exit For
End If
Next r
Sheets("Calc").Range("C22:BE22").copy _
destination:=Sheets("DATA_Lbf_ft").Range("B" & r)
如果您放弃原始的复印操作并使用此方法,我相信您应该得到想要的结果。
附录:
对于仅值转移,请用以下内容代替.Copy Destination:= ...
操作。
With Sheets("Calc").Range("C22:BE22")
Sheets("DATA_Lbf_ft").Range("B" & r).Resize(.Rows.Count, .Columns.Count) = .Cells.Value
End With
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句