如何解决没有'As'子句的变量声明;假设对象类型
Sub HideSheets()
'
' HideSheets Macro
' Hide selected worksheets
'
' Keyboard Shortcut: Ctrl+Shift+H
'
Sheets(Array("12-Month Expense data","12-Month Sales detail",_
"Chart of Accounts","Consolidated Data","Expense - Power Query",_
"Sales - Power Query")).Select
Sheets("12-Month Expense data").Activate
ActiveWindow.SelectedSheets.Visible = False
Sheets("12-Month Cash Flow").Activate
End Sub
我正在尝试运行此代码,但出现此错误变量声明,而没有'As'子句;假定对象类型。
解决方法
该myArray
变量是一个字段,即成员变量。只有局部变量可以使用类型推断。您必须指定字段的类型。
当您在方法内部声明局部变量时,编译器必须能够确定该变量的类型。这通常意味着使用As
子句明确指定它:
Dim var As SomeType
如果在声明变量的位置对其进行初始化:
Dim var As SomeType = someValue
然后,假设您拥有Option Infer On
(默认情况下是),则可以省略As
子句,并从初始化表达式中推断出变量的类型:
Dim var = someValue
在这种情况下,var
与someValue
的类型相同。您需要As
子句的唯一原因是,如果您希望var
是其他类型,例如您想要一个Control
变量,但您使用Button
对其进行了初始化,或者您想要了一个IEnumerable(Of T)
,但您使用List(Of T)
进行了初始化。
我在这里演示的被称为“类型推断”,但它仅对局部变量(即在方法内部声明的变量)有效。字段,即在变量外部声明的变量,必须使用As
子句明确输入。在您的情况下,请使用以下
Private myArray As Integer() = {1,2,1,3,5,1}
请注意使用显式访问修饰符(Private
),As
子句和文字数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。