选项显式 – 不知道如何调暗

我有一个现有的macros,我用它来格式化列。 我一直在使用这个没有问题。 现在,我正在学习如何使用Option Explicit,并且遇到了定义我的variables的问题。

我该怎么做昏暗的水平? 我尝试昏暗的水平作为string,但没有奏效。 我试图得到更好的理解,所以任何反馈将不胜感激。

Option Explicit Sub adviseformat() Dim Form As Worksheet Set Form = Sheets("Formatting") With Form Level = WorksheetFunction.Match("Level", .Rows("1:1"), 0) .Columns(Level).Delete .Columns("D:E").Delete .Range("U:U").Value = Range("E:E").Value .Columns("E").EntireColumn.Delete .Columns("F:I").Delete .Columns("I").Delete .Columns("L").Delete .Columns("M").Delete Form.Range("A:B").EntireColumn.Insert Form.Range("A1").Value = "Owner" Form.Range("B1").Value = "Comment" Form.Range("A1").Interior.Color = 65535 Form.Range("B1").Interior.Color = 65535 Form.Range("O1").Interior.Color = 65535 End With End Sub 

当你inputWorksheetFunction.Match部分时,VBA编辑器应该popup并给你提供返回types的线索。 应该这样说:

 Match(Arg1, Arg2, [Arg3]) as Double 

“As Double”部分告诉你Match函数的返回types。 这是你应该用来声明你的Levelvariables的types。

在MSDN上看 ,我发现这个:

MATCH返回lookup_array中匹配值的位置,而不是值本身。

例如,MATCH(“b”,{“a”,“b”,“c”},0)返回2,数组{“a”,“b”,“c” }。

所以我的猜测是你应该使用Dim Level As Variant