ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 782|回复: 9

[求助] VB.net出现这样的错误提示,请各位老师帮忙看一下,这个该怎么解决?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-9-25 15:56 | 显示全部楼层 |阅读模式
在VSTO中用VB.net,开发软件过程中提示如下语句出现错误:

xlsbook = xlsApp.Workbooks.Open("C:\Program Files (x86) \sldata.xlsx")

在这一句报警,
立即窗口出现提示:“在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“测试.exe”类型的异常”
网上搜了很多资料都没有解决问题,请论坛里的老师给帮忙看看,指点一下,谢谢!
  1.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

  2.         '读取并释放资源文件
  3.         Dim resources As System.Resources.ResourceManager = My.Resources.ResourceManager
  4.         Dim res() As Byte = resources.GetObject("sldata")
  5.         Dim myfile As New IO.FileStream("C:\Program Files (x86) \sldata.xlsx", IO.FileMode.OpenOrCreate)
  6.         myfile.Write(res, 0, res.Length)
  7.         myfile.Close()

  8.         Dim xlsApp As Microsoft.Office.Interop.Excel.Application '声明对象变量
  9.         Dim xlsbook As Microsoft.Office.Interop.Excel.Workbook
  10.         Dim xlssheet As Microsoft.Office.Interop.Excel.Worksheet
  11.         Dim C

  12.         xlsApp = New Microsoft.Office.Interop.Excel.Application '实例化对象
  13.         xlsbook = xlsApp.Workbooks.Open("C:\Program Files (x86) \sldata.xlsx") '打开EXCEL文件
  14.         xlssheet = xlsbook.Worksheets("WO")
  15.         C = xlssheet.Range("a:a").Find("B3SH10")
  16.         xlsApp.Visible = False '使Excel隐藏不可见
  17.         TextBox1.Text = C
  18.     End Sub
复制代码




无标题.png

测试.rar

1.57 MB, 下载次数: 13

出错的项目文件

TA的精华主题

TA的得分主题

发表于 2021-9-25 20:07 | 显示全部楼层
在提示错误之前,加这句试试:
xlsApp=Globals.ThisAddIn.Application

TA的精华主题

TA的得分主题

发表于 2021-9-25 20:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-9-27 09:51 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-9-27 10:50 | 显示全部楼层
临沂-枸杞 发表于 2021-9-27 09:51
你检查下上面写入的那个文件是否存在

谢谢您的回答,我检查过了,那个文件已经存在了,文件可以成功释放,但程序还是提示错误。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-9-27 10:55 | 显示全部楼层
大只佬qq 发表于 2021-9-25 20:08
错误之前加这句试试:
xlsAPP=Globals.ThisAddIn.Application

错误之前加上您给的这句代码还是提示错误。

1632711222(1).jpg

TA的精华主题

TA的得分主题

发表于 2021-9-27 11:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
实在不行你把Excel文件直接放资源文件里
另外你看下路径里(x86)右边有没有空格,我这边看路径里右括号右边是没有空格的

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-9-27 12:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
飞雪落叶 发表于 2021-9-27 10:55
错误之前加上您给的这句代码还是提示错误。

不要在这里定义 Microsoft.Office.Interop.Excel.Application ,把定义放在公共模块中;
在ThisAddIn_Startup 写这句:xlsApp=Globals.ThisAddIn.Application

TA的精华主题

TA的得分主题

发表于 2021-9-27 14:29 | 显示全部楼层
会不会是路径的问题?
我测试的环境:
win10 64位
office2016 64位
vs2019 64位

没有注释的代码测试通过
另外引用的office组件要释放

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

  2.         '读取并释放资源文件
  3.         'Dim resources As System.Resources.ResourceManager = My.Resources.ResourceManager
  4.         'Dim res() As Byte = resources.GetObject("sldata")
  5.         'Dim myfile As New IO.FileStream("C:\Program Files (x86) \sldata.xlsx", IO.FileMode.OpenOrCreate)
  6.         'myfile.Write(res, 0, res.Length)
  7.         'myfile.Close()

  8.         Dim xlsApp As Microsoft.Office.Interop.Excel.Application '声明对象变量
  9.         Dim xlsbook As Microsoft.Office.Interop.Excel.Workbook
  10.         Dim xlssheet As Microsoft.Office.Interop.Excel.Worksheet
  11.         Dim C

  12.         xlsApp = New Microsoft.Office.Interop.Excel.Application '实例化对象
  13.         'xlsbook = xlsApp.Workbooks.Add()'创建新工作簿用于测试
  14.         'xlsbook.SaveAs("d:\sldata.xlsx")'保存测试工作簿
  15.         xlsbook = xlsApp.Workbooks.Open("d:\sldata.xlsx") '打开EXCEL文件

  16.         'xlssheet = xlsbook.Worksheets.Add()’创建新工作表
  17.         'xlssheet.Name = "GD"'新工作表名
  18.         xlssheet = xlsbook.Sheets("GD")
  19.         xlssheet.Range("A1:G5").Value2 = "test" '测试单元格访问
  20.         xlsApp.Visible = True '使Excel可见
  21.         'Print(C)

  22.         xlsApp.Quit()
  23.         xlssheet = Nothing
  24.         xlsbook = Nothing
  25.         xlsApp = Nothing

  26.     End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-9-27 14:29 | 显示全部楼层
临沂-枸杞 发表于 2021-9-27 11:05
实在不行你把Excel文件直接放资源文件里
另外你看下路径里(x86)右边有没有空格,我这边看路径里右括号右 ...

(x86)右边确实是多了一个空格,将空格去掉后程序运行正常,感谢您的帮助!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 20:59 , Processed in 0.040904 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表