Excel 如何消除VBA中的子函数或未定义函数错误

Excel 如何消除VBA中的子函数或未定义函数错误,excel,vba,Excel,Vba,我已在excel中编写了此VBA代码,当将其保存在此工作簿中时,出现子项或未定义的函数错误,并突出显示偏移线。我是VBA的新手,我不知道如何调试它,请帮我解决这个问题 谢谢 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) '#################################################################################

我已在excel中编写了此VBA代码,当将其保存在此工作簿中时,出现子项或未定义的函数错误,并突出显示偏移线。我是VBA的新手,我不知道如何调试它,请帮我解决这个问题

谢谢

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)

'######################################################################################
'Employee Name Validation Started
'######################################################################################
Activate
Range("B2").Select
exceptionCount = 0
Do Until ActiveCell.Address = "$B$10"
' Check if the Employee Name is Not Null
If IsEmpty(ActiveCell.Value) Then
totalExceptions = 1
exceptionCount = 1
Interior.ColorIndex = 6 'Highlight with Yellow Color
Else
Interior.ColorIndex = 15 'Retain Grey Color
End If
Offset(1, 0).Select
Loop
If exceptionCount = 1 Then
exceptionString = exceptionString + vbCrLf & "- Employee Name Cannot be Empty"
End If
'#######'Employee Name Validation Completed '##############################################


End Sub

您忘了提到错误的位置,显然是在这一行:

Offset(1, 0).Select
这是有道理的,因为
Offset()
不是某个函数,而是一个范围的属性

您很可能希望使用所选单元格的偏移量,您可以将其写入:

Selection.Offset(1, 0).Select

祝您好运

您的第一个问题是
偏移量(1,0)。请选择
'“偏移量”是一个
范围。属性
。您尚未将其分配到任何范围。可能未定义
激活
,导致您的问题。无论如何,我强烈建议您阅读并重新编写代码。并使用
选项Explicit
,这样编译器就可以通知您此类错误。当然,我会检查它并尝试改进我的代码。谢谢。是的,将偏移量设置为ActiveCell,解决了这个问题。非常感谢你。