【问题标题】:Excel Interop in VB getting error HRESULT: 0x800A03ECVB 中的 Excel 互操作得到错误 HRESULT:0x800A03EC
【发布时间】:2016-05-09 22:37:21
【问题描述】:

我正在尝试将信息逐行添加到工作表中。 如果我 + 1 任何东西,我都会一直给我一个错误。

如果我只是直接更改一个单元格,它可以正常工作,并且不会出现这样的错误或崩溃

ws.Cells(2, 1) = "Test Data"

但是,一旦我尝试自动单步执行我的行,它就会崩溃。

有什么想法吗?我用谷歌搜索了很多,但似乎 0x800A03EC 是一个通用错误代码。

这是我的代码

    Dim app As New Excel.Application
    Dim ws As Excel.Worksheet
    Dim workBook As Excel.Workbook

    workBook = app.Workbooks.Open("P:\CAD\RhinoDek\Color Storage\TWO_SHEETS.xlsx")
    ws = workBook.Worksheets("Sheet1")

    Dim uRange = ws.UsedRange
    Dim rRange = uRange.Rows

    Dim cRow = rRange.Count + 1

    ws.Cells(cRow, 1) = "Test Data" (It throws the error here at cRow)

    workBook.Save()
    workBook.Close()
    app.Quit()

感谢您对此的任何帮助。

【问题讨论】:

  • 你能在错误所在的行前加上Messagebox.Show(cRow),看看cRow的值是多少
  • cRow 是 1048576。也不确定是不是这么高。
  • Excel中行数已达上限的问题!
  • 你的文件有多少行TWO_SHEETS.xlsx
  • 这是最后一行。 1048576。但它们都是空的!我到底做了什么?

标签: vb.net excel excel-interop


【解决方案1】:

Excel中的行数已经达到最大的问题。

试试这个以获得最后使用的行:

dim cRow = ws.Cells(1048576, 1).End(Excel.XlDirection.XlUp).row +1 

dim cRow = ws.Columns("A").Cells.Find("*", SearchOrder:=Excel.XlSearchOrder.xlByRows, LookIn:=Excel.XlFindLookIn.xlValues, SearchDirection:=Excel.XlSearchDirection.xlPrevious).Row +1

【讨论】:

  • 嗯....在查看了您提供的内容后,我一直向下滚动...它是....一个随机数字,我一定是不小心放在那里的。我删除了一个便便,它开始工作了,哈哈。谢谢大佬!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多