运行时错误“9”在传入工作表代号时,下标超出范围

我遇到了超出范围错误的下标,我不知道这是什么意思。 该错误特别发生在一个名为RedBorder的子项中,该子项名为validateDropDown,validateDropDown位于名为validationTools的模块中,RedBorder也是如此。 在ValidateSheet中调用validateDropDown,在Workbook_Open子部分中从ThisWorkBook调用ValidateSheet。 之前我曾问过这个问题,但很多人要求我创build一个最小的,完整的,可validation的例子。 我是相当新的两个stackoverflow和vba。 提前致谢

喜欢这个:

sheet8.ValidateSheet 

这是我的ValidateSheet

 Public Sub ValidateSheet() allowEdit ValidationTools.validateDropDown Sheet8, cbApplication, CB_APPLICATION_ERR_RANGE disallowEdit End Sub 

这是RedBorder:

 Public Sub RedBorder(sheet As Worksheet, rangeString As String) With Worksheets("sheet").Range(rangeString).Borders .LineStyle = xlContinuous .Color = vbRed .Weight = xlThin End With End Sub 

这是validateDropDown:

 Public Sub validateDropDown(sheet As Worksheet, ddl As msforms.ComboBox, rangeString As String) With sheet If ddl.ListIndex = -1 Then RedBorder sheet, rangeString 'add message .Range(rangeString).Value = "Please make a selection" Else NoBorder sheet, rangeString 'remove message .Range(rangeString).Value = "" End If End With End Sub 

sheet已经是一个Worksheet对象,所以你不要把它放在引号或使用Worksheets()部分。

 Public Sub RedBorder(sheet As Worksheet, rangeString As String) With sheet.Range(rangeString).Borders .LineStyle = xlContinuous .Color = vbRed .Weight = xlThin End With End Sub