需要变量声明后,VBA中出现编译错误

时间:2018-08-27 13:55:09

标签: excel vba

我已打开“要求变量声明”选项,以强制在VBA设置中声明变量。录制宏后,以下录制的宏无法运行并显示错误消息:

编译错误:预期的函数或变量。

我试图在tools-> options中关闭“要求变量声明”,然后代码成功运行。启用该选项后如何运行?

Option Explicit

Sub Macro2()
'
' Macro2 Macro
'

'
    Range("A1:E4").Select
    selection.Copy
    Range("A16").Select
    activesheet.Paste
End Sub

2 个答案:

答案 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。好读!