2013-02-28 74 views
3

我有一個代碼,與Excel 2007運行絕對好,但它不與Excel 2003運行。它給出了「complie錯誤」,這條線變成紅色。在Excel 2003中的代碼錯誤

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 

您的建議很有幫助。謝謝。如果您需要我的任何信息,請告訴我。

這裏是我的全碼:

'------------------------------------- 
' Create Final Report 
'------------------------------------- 
Sub FinalReport() 
Dim thisWb As Workbook 
Set thisWb = ActiveWorkbook 
Dim btn, rght As Long 
Dim NewWbk As String 

NewWbk = "Final_Report" 

' Add a new workbook 
    Application.Workbooks.Add 
    Range("A1").Select 
' Rename the workbook 
    ActiveWorkbook.SaveAs Filename:=thisWb.Path & Application.PathSeparator & "Final_Report" & ".xls" 

    Windows("Tool_01082013.xls").Activate 
    Sheets("Reports").Activate 

' select the sheet and range to be copied 
Range("B2:AO34").Select 

' Copy the selected range... 
    Selection.Copy 
    Workbooks("Final_Report.xls").Sheets("Sheet1").Activate 

' and Paste it into the new workbook 
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
     False, Transpose:=False 

Windows("Tool_01082013.xls").Activate 
    Sheets("Reports_Month").Activate 

' select the sheet and range to be copied 
Range("A1:DR34").Select 

' Copy the selected range... 
    Selection.Copy 
    Workbooks("Final_Report.xls").Sheets("Sheet2").Activate 

' and Paste it into the new workbook 
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
     False, Transpose:=False 
Workbooks("Final_Report.xls").Save 
Workbooks("Final_Report.xls").Close 
Windows("Tool_01082013.xls").Activate 
    With Sheets("Reports") 
     .Activate 
     .Range("A5").Select '-- move focus to the first item 
    End With 
End Sub 
+2

嘗試用xlPasteValues和xlNone與xlPasteSpecialOperationNone – mkingston 2013-02-28 22:56:25

+0

右更換xlValues,我搞混了版本;認爲你在2007年遇到麻煩。我在2007年測試;不能在2003年測試。對不起:/ – mkingston 2013-02-28 22:59:46

+2

虐待「選擇」是邪惡的。除此之外,我會嘗試從xlValues除去PasteSpecial調用的所有參數。另外,錯誤是什麼?我在工作中離開了我的水晶球;) – ApplePie 2013-02-28 23:15:38

回答

0

嘗試了這一點:

'------------------------------------- 
' Create Final Report 
'------------------------------------- 
Sub FinalReport() 

    Dim thisWb As Workbook, _ 
     finalReport as Workbook, _ 
     toolWB as Workbook 
    Set thisWb = ActiveWorkbook 
    Dim copyrange As Range 

    ' Add a new workbook 
    set finalReport = Application.Workbooks.Add 
    ' Rename the workbook 
    finalReport.SaveAs Filename:=thisWb.Path & Application.PathSeparator & "Final_Report.xls" 

    set toolWB = Workbooks("Tool_01082013.xls") 
    Set copyrange = toolWB.Sheets("Reports").Range("B2:AO34") 
    finalReport.Sheets("Sheet1").Range("A1").Resize(copyrange.Rows.Count, copyrange.Columns.Count).Value = copyrange.Value 
    Set copyrange = toolWB.Sheets("Reports_Month").Range("A1:DR34") 
    finalReport.Sheets("Sheet2").Range("A1").Resize(copyrange.Rows.Count, copyrange.Columns.Count).Value = copyrange.Value 

    finalReport.Save 
    finalReport.Close 
    Application.Goto toolWB.Sheets("Reports").Range("A5") 

End Sub 
+0

謝謝你們這麼多傢伙!最終工作的是當我用xlPasteValues替換xlValues並用xlPasteSpecialOperationNone替換xlNone時。再次感謝 – datacentric 2013-03-01 17:12:10

+0

這真的很奇怪,但至少它工作正常! – mkingston 2013-03-02 03:43:21