我是vba新手,所以在学习。我很努力地理解为什么这在Excel 2016中失败了,我的研究一片空白。我有以下代码vba:变量未在activeCell中定义
Option Explicit
Sub Range_End_Method()
Dim lRow As Long
Dim lCol As Long
Dim i As Integer
Dim rng As Range
Set rng = ActiveCell
lRow = Cells(Rows.Count, 1).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
Do While rng.Value <> Empty
If InStr(rng.Value, "Petrol") = 0 Then
currentRow = ActiveCell.Row
Worksheets("MySheet").Cells(currentRow, 5) = "Shopping"
Set rng = rng.Offset(1)
rng.Select
Else
currentRow = ActiveCell.Row
Worksheets("MySheet").Cells(currentRow, 9) = "Not Found"
Set rng = rng.Offset(1)
rng.Select
End If
Loop
End Sub
如果我打开vba编辑器并将其输入到“Microsoft Excel Objects”表中,我不会收到错误消息。但是,如果我跑的“模块”命名我的模块“m_End”我抛出了一个错误,说
Compile Error
Variable not defined
它强调在VBA编辑器中的变量是在第一个“如果条件来自行“currentRow” “:
currentRow = ActiveCell.Row
我不明白有什么区别,以及如何解决错误。
任何帮助,将不胜感激。
您在代码的开头缺少一个*** Sub ***语句。 –
在你的代码的开始,你应该有'Option Explicit',接着是'Sub yourSubName()'。既然如此,你从不声明'currentRow'是一个变量。如果您在开始时没有Option Explicit,请进入“工具►选项►编辑器►代码设置”并选择“需要变量声明”,这将为您节省大量时间。也许在你的sheet模块中,你没有'Option Explicit' –
对不起,我刚刚编辑了我的代码 - 我错误地忘了复制选项和子语句。运行代码时,他们也在那里。这仍然给出了同样的错误。我应该如何声明变量?谢谢 – Dan