ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VB.NET 里怎么正确调用EXCEL.application.inputbox

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-31 18:43 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在VBA里我直接用 application.inputbox 就能调用输入框,并能选择单元格区域

在VSTO里我是这样写的
dim app as excel.application
app = new excel.application
app.inputbox("test")
虽然输入框出现了,但是不能选择单元格区域,不知道怎么回事,还望有经验的人指教。

TA的精华主题

TA的得分主题

发表于 2013-5-31 21:11 | 显示全部楼层
等下测试 初步判断为 你是新建的一个EXCEL.APPLICATION实例
可以查看系统进程是否是两个EXCEL.EXE进程 如果是的话就是这个原因
不同的进程之间通信不是这样的
解决方法是不需要使用NEW 关键字新建一个实例
而是直接用app变量指向已经运行的Excel的实例

这样就在同一个进程里面了
而且你选择单元格那样的形式还缺少一个类型参数

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-31 21:18 | 显示全部楼层
doryan 发表于 2013-5-31 21:11
等下测试 初步判断为 你是新建的一个EXCEL.APPLICATION实例
可以查看系统进程是否是两个EXCEL.EXE进程 如果 ...

我看了下资源管理器,果然有很多进程,小弟刚刚接触VSTO。还望指教如何指向已经运行的EXCEL,还有少了什么参数。VB.NET刚接触,很多东西还没有概念。

TA的精华主题

TA的得分主题

发表于 2013-5-31 21:33 | 显示全部楼层
啊哦 无法测试 因为个人原因 (我使用的是VS2010+OFFICE2013)
所以无法创建文档级的VSTO
只能做个项目级别的外接程序了

Globals.ThisAddIn.Application.InputBox("", Type:=8) 项目级别的外接程序就是这样调用的  

TA的精华主题

TA的得分主题

发表于 2013-5-31 21:44 | 显示全部楼层
dddance 发表于 2013-5-31 21:18
我看了下资源管理器,果然有很多进程,小弟刚刚接触VSTO。还望指教如何指向已经运行的EXCEL,还有少了什么 ...

不是说很多进程 本来就会有几十个进程的
因为你电脑上还同时运行很多程序
但是名为EXCEL.EXE的进程应该只有一个哈

还有就是在VSTO发问 不仅要说明你的问题
还要说明是在做什么的时候发生的问题

在做外接程序 程序级的项目 文档级的项目 可能解决方式不同哈

文档级的项目 会直接给你一个object类的 sender参数 这个参数就是宿主 EXCEL.APPLICATION
不过你使用之前需要显式的转换一下

程序级的项目 dim app as  Excel.application
app=Globals.ThisAddIn.Application
app.inputbox("",type:=8)

大家不一样的 但是思想是一样的 就是先获得宿主程序 这样操作才在同一个进程下 而不是new 一个实例 这样是另一个进程了

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-31 22:26 | 显示全部楼层
doryan 发表于 2013-5-31 21:44
不是说很多进程 本来就会有几十个进程的
因为你电脑上还同时运行很多程序
但是名为EXCEL.EXE的进程应该 ...

谢谢详细的指导,我做得是外接程序,用的是VS2010+OFFICE2007,现在可以了,非常感谢。以后估计少不了麻烦你。

TA的精华主题

TA的得分主题

发表于 2013-6-12 23:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
vsto中本来就有INPUTBOX,为什么要这样调用呢?

TA的精华主题

TA的得分主题

发表于 2013-6-13 12:58 | 显示全部楼层
mjzxlmg 发表于 2013-6-12 23:24
vsto中本来就有INPUTBOX,为什么要这样调用呢?

Excel自带的纯天然 Type参数可以防止很多误操作

TA的精华主题

TA的得分主题

发表于 2016-5-22 13:43 | 显示全部楼层
你好, 你这个问题解决了吗? 我也很想知道怎么操作。 excel自带的input可以直接鼠标点击单元格取值,这个很方便
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-22 23:48 , Processed in 0.043775 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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