【发布时间】:2013-03-01 09:09:15
【问题描述】:
我有一个代码在 excel 2007 上运行得非常好,但在 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
【问题讨论】:
-
尝试用 xlPasteValues 替换 xlValues,用 xlPasteSpecialOperationNone 替换 xlNone
-
对,我把版本弄混了;以为你在 2007 年遇到了麻烦。我在 2007 年进行测试;无法在 2003 年进行测试。抱歉:/
-
滥用“选择。”是邪恶的。除此之外,我会尝试删除 PasteSpecial 调用的所有参数,但 xlValues 除外。另外,错误是什么?我把水晶球忘在了工作上;)
-
@AlexandreP.Levasseur 它只是说编译语法错误。我在问题中提到的那条线变成了红色。
-
@AlexandreP.Levasseur 好点,复制和粘贴代码可以完全用
Workbooks("Final_Report.xls").Sheets("Sheet1").Range("A1:AN33").Value = Workbooks("Tool_01082013.xls").Sheets("Reports").Range("B2:AO34").Value之类的东西代替
标签: vba excel excel-2003