Excel宏VBA代码编译错误:ThisWorkbook.Save报‘需函数或变量’
解决VBA中ThisWorkbook.Save的编译错误问题
我来帮你理清这个问题——你遇到的错误其实是对VBA中方法和属性的用法混淆了:
错误原因
ThisWorkbook.Save是一个方法(也就是需要执行的动作),而不是可以赋值的属性。你写.Save = True这种赋值操作是完全错误的,VBA会误以为你把Save当成了一个变量或者可赋值的属性,所以抛出“Expected Function or variable”的编译错误。
至于Intellisense显示Save是有效选项,这没问题——它确实是合法的方法,只是你用错了调用方式而已。
正确写法
如果你想要先保存工作簿再关闭,直接调用Save方法即可,不需要赋值:
With ThisWorkbook .Save ' 直接执行保存动作 .Close End With
如果你想更简洁,也可以直接用Close方法的SaveChanges参数一步完成关闭并保存:
ThisWorkbook.Close SaveChanges:=True
这样就能避免编译错误,同时实现你想要的保存后关闭工作簿的功能。
内容的提问来源于stack exchange,提问作者Space Cadet
相关产品推荐
相关产品推荐

