vb.net - System.Runtime.InteropServices.COMException:'无效索引。(来自 HRESULT 的异常:0x8002000B (DISP_E_BADINDEX))'
问题描述
我一直在 VB.net 中编写代码,当我尝试启动时发生此错误: System.Runtime.InteropServices.COMException: 'Invalid index. (来自 HRESULT 的异常:0x8002000B (DISP_E_BADINDEX))'
这是[错误的快速观察] [1] [1]:https://i.stack.imgur.com/zsYPO.png
错误发生在第 10 行
With CostSheetApp.Workbooks(nameOfTheCostSheet)
这就是所有的子
Private Sub CreateHoursAssignementsSheet(CostSheetApp As Excel.Application, nameOfTheCostSheet As String, Project As WBSProject, ByRef WBSResourceList As List(Of WBSResource), Optional withRiskString As String = "")
'Variable preparation
Project.ProjectConstant.COST_SHEET_COL_ST_RESOURCE = Project.ProjectConstant.COST_SHEET_COL_FOLOWING_TYPE + 1
Project.ProjectConstant.COST_SHEET_COL_END_RESOURCE = Project.ProjectConstant.COST_SHEET_COL_ST_RESOURCE + WBSResourceList.Count - 1
Project.ProjectConstant.COST_SHEET_COL_RISK = Project.ProjectConstant.COST_SHEET_COL_END_RESOURCE + 1
Project.ProjectConstant.COST_SHEET_COL_MIN_HOURS = Project.ProjectConstant.COST_SHEET_COL_RISK + 1
Project.ProjectConstant.COST_SHEET_COL_LIKEHOOD_HOURS = Project.ProjectConstant.COST_SHEET_COL_MIN_HOURS + 1
Project.ProjectConstant.COST_SHEET_COL_MAX_HOURS = Project.ProjectConstant.COST_SHEET_COL_LIKEHOOD_HOURS + 1
With CostSheetApp.Workbooks(nameOfTheCostSheet)
For Each sheet In .Sheets 'delete the old sheet if it exist
If (sheet.name.Equals(Project.ProjectConstant.NAME_OF_COST_SHEET_SHEET + withRiskString)) Then
Call .Sheets(Project.ProjectConstant.NAME_OF_COST_SHEET_SHEET + withRiskString).delete
Exit For
End If
Next
'create the new sheet
Call .Sheets.Add()
.ActiveSheet.name = Project.ProjectConstant.NAME_OF_COST_SHEET_SHEET + withRiskString
End With
If (withRiskString.Equals("")) Then
ExtractTemplateIntoCostSheet(CostSheetApp, WBSResourceList)
Else
ExtractTemplateIntoCostSheet(CostSheetApp, WBSResourceList, False)
End If
' extend the range that are paste on all the rows necessary for the cost sheet
With CostSheetApp.Workbooks(nameOfTheCostSheet).Sheets(Project.ProjectConstant.NAME_OF_COST_SHEET_SHEET + withRiskString)
If (withRiskString.Equals("")) Then
' .Cells(Project.projectConstant.COST_SHEET_START_ROW + 1, Project.projectConstant.COST_SHEET_COL_LIKEHOOD_HOURS).formula = Project.projectConstant.COST_SHEET_FORMULA_LIKEHOOD.Replace("0", CStr(Project.projectConstant.COST_SHEET_START_ROW + 1)) 'put the formula for the Likehood column to always display the max hours of all the line
.range(.Cells(Project.ProjectConstant.COST_SHEET_START_ROW + 1, Project.ProjectConstant.COST_SHEET_COL_WP), .Cells(Project.ProjectConstant.COST_SHEET_START_ROW + 1, Project.ProjectConstant.COST_SHEET_COL_MAX_HOURS)).Select
Else
.range(.Cells(Project.ProjectConstant.COST_SHEET_START_ROW + 1, Project.ProjectConstant.COST_SHEET_COL_WP), .Cells(Project.ProjectConstant.COST_SHEET_START_ROW + 1, Project.ProjectConstant.COST_SHEET_COL_END_RESOURCE)).Select
End If
CostSheetApp.Selection.Copy
If (withRiskString.Equals("")) Then
.range(.Cells(Project.ProjectConstant.COST_SHEET_START_ROW + 1, Project.ProjectConstant.COST_SHEET_COL_WP), .Cells(Project.NumberOfTask + Project.NumberOfSumarryTasks + 4, Project.ProjectConstant.COST_SHEET_COL_MAX_HOURS)).Select
Else
.range(.Cells(Project.ProjectConstant.COST_SHEET_START_ROW + 1, Project.ProjectConstant.COST_SHEET_COL_WP), .Cells(Project.NumberOfTask + Project.NumberOfSumarryTasks + 4, Project.ProjectConstant.COST_SHEET_COL_END_RESOURCE)).Select
End If
CostSheetApp.Selection.PasteSpecial(Paste:=xlPasteFormats, SkipBlanks:=False, Transpose:=False)
End With
End Sub
希望有人能够帮助我克服这个问题。如果您需要进一步的解释,请告诉我。
先感谢您。
解决方案
推荐阅读
- json - 如何将模块输出传递到 json 文件以使用 terraform for_each 配置 EC2 实例?
- python-sphinx - 如何生成带有前缀的 html 文档?
- r - R:随机采样向量中的一个非零元素,并将其他元素替换为 0
- mysql - 我想找到count结果的总和
- angular - Angular 组件不显示内容
- r - R语言中的group_by和summarize_at显示参数的无效“类型”(内置)
- python - 如何对列表中的类进行排序
- python - 对 x 轴的值进行排序,以便在计算 f(x) 时均匀地填充绘图 f(x)
- javascript - 如何让 Underscore 表现得像 Ramda?
- python - 使用需要编码的moviepy向视频添加字幕