我已打开“要求变量声明”选项,以强制在VBA设置中声明变量。录制宏后,以下录制的宏无法运行并显示错误消息:
编译错误:预期的函数或变量。
我试图在tools-> options中关闭“要求变量声明”,然后代码成功运行。启用该选项后如何运行?
Option Explicit
Sub Macro2()
'
' Macro2 Macro
'
'
Range("A1:E4").Select
selection.Copy
Range("A16").Select
activesheet.Paste
End Sub
答案 0 :(得分:1)
VBA区分大小写。 selection.Copy应该是Selection.Copy和activesheet.Paste应该是ActiveSheet.Paste。另外,除非需要选择单元格,否则可以将代码简化为:
Range("A1:E4").Copy Range("A16")
答案 1 :(得分:0)
我可以收集的东西:
这是非常有趣的示例,例如:
Debug.print Range("A1:E4").Columns.Count
&
Debug.Print Range("A1:E4").Address
请勿触发1004错误。
我玩耍时才发现.Activate还会触发1004错误。
您可以将表格放在该范围的前面,以避免出现此错误:
Dim ws as worksheet
Set ws = Sheets("Sheet1")
ws .Range("A1:E4").Select
或者如果仅涉及一张纸,而您的宏活动纸就足够了:
ActiveSheet.Range("A1:E4").Select
或
Sheets("Sheet1").Range("A1:E4").Select
您可能想avoid using select however
此贡献者对range.select方法做了some testing and found out a bit。好读!