【问题标题】:Pastespecial error on first run首次运行时粘贴特殊错误
【发布时间】:2016-04-26 14:31:06
【问题描述】:

此子设置为从一个工作表复制信息并将值粘贴到新的 CSV 工作簿中。我在 pastespecial 上不断收到运行时错误,但是,它只是在打开电子表格后第一次单击时,如果我再次单击它,它会完美运行。即使它给了我一个错误,当我点击结束时它仍然会粘贴这些值。

Sub export_save()

Dim nrows As Integer
Dim norders As Integer
Dim i As String
Dim cell As Range
Dim fname As String
Dim WS As Worksheet
Dim WK As Workbook
Set WK = Workbooks.Add
Dim k As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
k = 2
i = "DO" 'plant to plant movement


'name new file
On Error GoTo canceled
fname = InputBox("Please name the new file, exlude any filename   extensions.", "Export Data")

WK.SaveAs Filename:="S:\Active Customers\Teknor Apex\Feeds\Orders\" & fname, _
    FileFormat:=xlCSV
    MsgBox ("File saved to file path:S:\Active Customers\Teknor  Apex\Feeds\dev\" & fname)

'copy info over
Workbooks("Teknor Template dev").Worksheets("REFORMATTED").Activate
nrows = Rows(Rows.Count).End(xlUp).Row
Workbooks("Teknor Template dev").Worksheets("REFORMATTED").Range("A3:AG" & nrows).copy
WK.Activate
Range("A1:AG" & nrows).PasteSpecial xlPasteValues, Operation:=xlNone,  SkipBlanks _
    :=False, Transpose:=False


'remove parentheses
norders = Rows(Rows.Count).End(xlUp).Row
Range("AI2").FormulaR1C1 = "=MID(RC[-14],FIND(""("",RC[-14],1)+1,3)"
Range("AI2").AutoFill Destination:=Range("AI2:AI" & norders),  Type:=xlFillDefault
Range("AI2:AI" & norders).copy
Range("U2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  SkipBlanks:=False, Transpose:=False
Columns("AI:AI").Delete Shift:=xlToLeft

'remove ship paratheses in DO orders
For Each cell In Range("B2:B" & norders)
    If cell.Value = i Then
        Range("AI" & k).FormulaR1C1 = "=MID(RC[-13],FIND("" ("",RC[-13],1)+1,3)"
        Range("AI" & k).copy
        Range("V" & k).PasteSpecial xlPasteValues, Operation:=xlNone,  SkipBlanks:=False, Transpose:=False
    End If
    k = k + 1
Next cell

'delete extra column used to remove paratheses
Columns("AI:AI").Delete Shift:=xlToLeft

WK.Save
Application.ScreenUpdating = True
Application.DisplayAlerts = True

canceled:

End Sub

为了清楚起见,这里是一个较小的版本,仅包含错误,位于 pastespecial 行中。

Workbooks("Teknor Template dev").Worksheets("REFORMATTED").Activate
nrows = Rows(Rows.Count).End(xlUp).Row
Workbooks("Teknor Template dev").Worksheets("REFORMATTED").Range("A3:AG" & nrows).copy
WK.Activate
Range("A1:AG" & nrows).PasteSpecial xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    变化:

    Range("A1:AG" & nrows).PasteSpecial xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    

    收件人:

    Range("A1:AG" & nrows).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    

    您的代码丢失Paste:=

    【讨论】:

    • 谢谢老兄,我发誓我以前有过这个,但添加它似乎可以解决问题!
    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多