如何解决在vba中粘贴特殊
| 我试图在vba中使用pastespecial ..我基本上需要将值(而不是公式,因为由于该工作表中单元格值的变化而粘贴到新工作表时会重新计算公式)到另一工作表...但是我收到错误1004,说“重复定义或对象定义错误”。代码在这里...请帮助一些...Sub Macro1try()
Dim i As Integer
Dim j As Integer
For i = 1 To 2
Worksheets(\"Volatility\").Cells(1,\"B\").Value = Worksheets(\"Volatility\").Cells(i,\"S\").Value
Call mdlMain.ExtractData
Range(\"A11:D2330\").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,Operation:= _
xlNone,SkipBlanks:=False,Transpose:=False
ActiveWorkbook.Sheets(\"Volatility\").Activate
Next i
End Sub
解决方法
这是我学到的很难的方法:尽可能避免复制/粘贴!复制和粘贴使用剪贴板。在您的代码运行时,其他程序可能会从剪贴板中读取/写入剪贴板,这将在两端导致异常的,不可预测的结果。
在您的特定情况下,完全不需要复制和粘贴。只需使用
=
。
For i = 1 To 2
\'// Your stuff,which I won\'t touch:
Worksheets(\"Volatility\").Cells(1,\"B\").Value _
= Worksheets(\"Volatility\").Cells(i,\"S\").Value
Call mdlMain.ExtractData
Sheets.Add After:=Sheets(Sheets.Count)
\'// The following single statement replaces everything else:
Sheets(Sheets.Count).Range(\"A11:D2330\").Value _
= Sheets(\"Volatility\").Range(\"A11:D2330\").Value
\'// Voilà. No copy,no paste,no trouble.
\'// If you need the number format as well,then:
Sheets(Sheets.Count).Range(\"A11:D2330\").NumberFormat_
= Sheets(\"Volatility\").Range(\"A11:D2330\").NumberFormat
Next i
, 您需要说明将其放置在图纸上的位置
Sub Macro1try()
Dim i As Integer
Dim j As Integer
For i = 1 To 2
Worksheets(\"Volatility\").Cells(1,\"B\").Value = Worksheets(\"Volatility\").Cells(i,\"S\").Value
Call mdlMain.ExtractData
Sheets.Add After:=Sheets(Sheets.Count)
Worksheets(\"Volatility\").Range(\"A11:D2330\").Copy
Sheets(Sheets.Count).Range(\"A11:D2330\").PasteSpecial Paste:=xlPasteValuesAndNumberFormats,Operation:=xlNone,SkipBlanks:= _
False,Transpose:=False
Next i
End Sub
, 加
\“。Range(\” A1 \“)。\”
在\'ActiveSheet \'和\'PasteSpecial \'之间
将A1更改为要粘贴到的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。