运行时错误“ 9”下标超出范围

时间:2018-11-21 16:12:08

标签: excel vba excel-vba compiler-errors subscript

我试图到处寻找这种解决方案,但找不到。

我正在尝试构建一个用户表单以输入新行(标头后的第一行)。

用户窗体包含6个字段,其中4个是组合框(列表)和2个文本框。

我运行脚本时,它停留在以下行:Set ssheet = ThisWorkbook.Sheets("Sheet1")

请在下面找到我的代码:

Private Sub CommandButton1_Click()
Dim ssheet As Worksheet

Set ssheet = ThisWorkbook.Sheets("Sheet1")

nr = ssheet.Cells(Rows.Count, 1).End(x1Up).Row + 1

ssheet.Cells(nr, 1) = Me.tbNAME
ssheet.Cells(nr, 2) = Me.cmbStatus
ssheet.Cells(nr, 3) = Me.cmbFunds
ssheet.Cells(nr, 4) = Me.cmbDD
ssheet.Cells(nr, 7) = Me.cmbDistributor
ssheet.Cells(nr, 8) = Me.tbComments

End Sub

Private Sub UserForm_Initialize()
Me.tbDate = Date

For Each blah In [StatusList]
    Me.cmbStatus.AddItem blah

Next blah

For Each blah In [FundsList]
    Me.cmbFunds.AddItem blah

Next blah

For Each blah In [DDList]
    Me.cmbDD.AddItem blah

Next blah


For Each blah In [DistributorList]
    Me.cmbDistributor.AddItem blah

Next blah


End Sub

如果您能帮助我解决这个问题,那太好了,为行添加6个字段似乎很容易,但随后它就卡住了。

谢谢!, 亚历克斯

1 个答案:

答案 0 :(得分:1)

使用线路时:

Set ssheet = ThisWorkbook.Sheets("Sheet1")

确保"Sheet1"实际上是工作簿上工作表的名称

根据您的评论,您可以使用:

Set ssheet = ThisWorkbook.Sheets(1)Set ssheet = ThisWorkbook.Sheets("Master Log")

并针对以下行:

nr = ssheet.Cells(ssheet.Rows.Count, 1).End(xlUp).Row + 1