我不断收到System.Runtime.InteropServices.COMException(0x80028018):旧的格式或无效的types库。 错误

我尝试使用ListView – objLv中的相应行颜色来更新Excel工作表行

objLv = ListView

我添加了一个参考System.Drawing.dll – 运行版本v2.0.50727 – 版本2.0.0.0

该错误发生在“workbook.Styles.Item(i).Interior.Color …所以这是下面的代码的第六行。 我应用了一些解决scheme,但无法解决问题。

Dim oldCI = New System.Globalization.CultureInfo("en-US") 'Me.sCloseDoc(strXLSFile) Dim workbook As Excel.Workbook = Me.fOpenXlsFile(strXLSFile) For i As Int32 = 0 To objLv.Items.Count - 1 workbook.Styles.Item(i).Interior.Color = objLv.Items(i).BackColor Next workbook.Save() 

样式集合不是基于0的。

尝试workbook.Styles.Item(i+1).Interior.Color = objLv.Items(i).BackColor

另外,正如David在评论中提到的那样,您需要在保存WorkBook之后重置文化,如下所示:

 System.Threading.Thread.CurrentThread.CurrentCulture = CType(oldCI, CultureInfo)