Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba中的特殊粘贴_Vba_Paste - Fatal编程技术网

vba中的特殊粘贴

vba中的特殊粘贴,vba,paste,Vba,Paste,我试图在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("Vola

我试图在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

你需要说明你把它放在纸上的位置

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

你需要说明你把它放在纸上的位置

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
加 “.范围(“A1”)。” 在“ActiveSheet”和“PasteSpecial”之间 将A1更改为要粘贴到的位置。

添加 “.范围(“A1”)。” 在“ActiveSheet”和“PasteSpecial”之间
将A1更改为要粘贴到的位置。

这是我经过艰苦的学习得出的结论:尽可能避免复制/粘贴使用剪贴板复制和粘贴。在代码运行时,其他程序可能会从剪贴板读/写,这将在两端导致不可预知的结果

在您的特定情况下,完全不需要复制和粘贴。只需使用
=

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

这是我通过艰苦的方式学到的:尽可能避免复制/粘贴使用剪贴板复制和粘贴。在代码运行时,其他程序可能会从剪贴板读/写,这将在两端导致不可预知的结果

在您的特定情况下,完全不需要复制和粘贴。只需使用
=

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

VBA带有调试器,请使用它。另外,您可以格式化代码并指出发生错误的行吗?您可以在编辑窗口的菜单上找到“代码格式”按钮,它看起来是:{}VBA确实带有调试器,请使用它。另外,您可以格式化代码并指出发生错误的行吗?您可以在编辑窗口的菜单上找到代码格式按钮,它看起来像:{}