Vba Excel 2010中的下标超出范围

Vba Excel 2010中的下标超出范围,vba,excel-2010,Vba,Excel 2010,我正在尝试编写许可证跟踪工作表,但下标超出了范围错误。我不是很精通VBA。该工作簿是许可证跟踪日志。似乎有麻烦的一行是第4行Set ws=工作表(“PermitTracker”)。当我将鼠标悬停在Set-ws上时,消息是“ws=Nothing”。将鼠标悬停在其余部分上会显示消息工作表(“PermitTracker”)=。下面是代码 Private Sub cmdAddPermit_Click() Dim iRow As Long Dim ws As Worksheet Set ws = Wo

我正在尝试编写许可证跟踪工作表,但下标超出了范围错误。我不是很精通VBA。该工作簿是许可证跟踪日志。似乎有麻烦的一行是第4行Set ws=工作表(“PermitTracker”)。当我将鼠标悬停在Set-ws上时,消息是“ws=Nothing”。将鼠标悬停在其余部分上会显示消息工作表(“PermitTracker”)=。下面是代码

  Private Sub cmdAddPermit_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("PermitTracker")

iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

Exit Sub
End

With ws
  .Cells(iRow, 1).Value = Me.txtEntryDate.Value
  .Cells(iRow, 2).Value = Me.txtIssueDate.Value
  .Cells(iRow, 3).Value = Me.ComboBoxDiscipline.Value
  .Cells(iRow, 5).Value = Me.txtFirstFlrSqFt.Value
  .Cells(iRow, 6).Value = Me.txtSecondFlrSqFt.Value
  .Cells(iRow, 7).Value = Me.txtBmtDevSqFt.Value
  .Cells(iRow, 8).Value = Me.txtAttGarSqFt.Value
  .Cells(iRow, 9).Value = Me.txtDetGarSqFt.Value
  .Cells(iRow, 10).Value = Me.txtDeckSqFt.Value
  .Cells(iRow, 11).Value = Me.txtWoodBurner.Value
  .Cells(iRow, 12).Value = Me.txtCommercialConstCost.Value
  .Cells(iRow, 13).Value = Me.txtElectricalPermitFee.Value
  .Cells(iRow, 14).Value = Me.txtGasPermitFee.Value
  .Cells(iRow, 15).Value = Me.txtPlumbingPermitFee.Value
  .Cells(iRow, 16).Value = Me.txtMiscMinPermitFee.Value
  .Cells(iRow, 17).Value = Me.txtContractorOwner.Value
  .Cells(iRow, 18).Value = Me.txtProjectAddress.Value
  .Cells(iRow, 19).Value = Me.txtPermitClosedDate.Value
End With

Me.txtEntryDate.Value = ""
Me.txtIssueDate.Value = ""
Me.ComboBoxDiscipline.Value = ""
Me.txtFirstFlrSqFt.Value = ""
Me.txtSecondFlrSqFt.Value = ""
Me.txtBmtDevSqFt.Value = ""
Me.txtAttGarSqFt.Value = ""
Me.txtDetGarSqFt.Value = ""
Me.txtDeckSqFt.Value = ""
Me.txtWoodBurner.Value = ""
Me.txtCommercialConstCost.Value = ""
Me.txtElectricalPermitFee.Value = ""
Me.txtGasPermitFee.Value = ""
Me.txtPlumbingPermitFee.Value = ""
Me.txtMiscMinPermitFee.Value = ""
Me.txtContractorOwner.Value = ""
Me.txtProjectAddress.Value = ""
Me.txtPermitClosedDate.Value = ""
Me.txtEntryDate.SetFocus

End Sub

Private Sub CmdCloseForm_Click()
Unload Me
End Sub

Private Sub UserForm_Click()
Private Sub UserForm_QueryClose(Cancel As Integer, _
  CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then
    Cancel = True
    MsgBox "Please use the Close Form button!"
  End If
End Sub

如果这一行是问题所在,那么工作表的名称上就有一个打字错误,“PermitTracker”“不等于活动工作簿中工作表的名称。此错误通常意味着找不到指定的工作表名称。”。是否确定当前活动工作簿中有名为PermitTracker的工作表?你是不是打错了什么?我查了很多遍了。该工作表名为“许可证跟踪器”。非常感谢。正在工作,那些讨厌的小空间。很高兴我们能提供帮助。第8行是End If,但我得到了错误End If,没有阻塞If。我在一些字段中嵌套了公式。这会导致这种情况发生吗?