ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] vba转vsto遇到的几个问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-9-10 10:45 来自手机 | 显示全部楼层 |阅读模式
各位Excel大神好,小弟最近在做vba转vsto,vsto也是使用的vb语言,但是遇到了一些问题,希望各位不吝赐教!
①、单元格的选定问题
在vba中选定单元格可以使用:Range(Cells(m, 6), Cells(m, 6)).select这种格式,也可以使用 Range("A1:B7").select的格式。
在vsto中选定单元格目前仅发现了一种方法:xlapp.range("A1:B7").select()
有没有什么方法能够让vsto中也能使用上面第一种方法呢?就是用Cells(m, 6), Cells(m, 6)的模式来进行选定单元格,因为vba代码中都是使用x和y的数字坐标来定位的。有相似效果的方法也可以(就是不要使用字母来定位单元格)。
②、选定单元格后的操作
Range(Cells(sum - 1, 6), Cells(sum - 1, 7)).Select
        Selection.Merge
        With Selection.Interior
            .Pattern = xlSolid
            '.PatternColorIndex = xlAutomatic
            .Color = 65535
            '.TintAndShade = 0
            '.PatternTintAndShade = 0
        End With
以上这种在vsto中该如何转换呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-9-12 10:15 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-9-13 13:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-9-13 22:28 | 显示全部楼层
都是差不多的写法啊,在vsto,你需要从globals之类的静态变量获取到相关的excel对象,然后和vba的对象模型一样的做法.总是从vba去翻译为net上的代码,你会很快就想放弃的.

TA的精华主题

TA的得分主题

发表于 2017-9-22 23:27 | 显示全部楼层
转学VSTO应该想办法忘记使用EXCEL,直接用窗体程序就行。只有读入数据和输出数据或打印结果时才使用EXCEL对象

TA的精华主题

TA的得分主题

发表于 2017-9-25 11:43 | 显示全部楼层
mjzxlmg 发表于 2017-9-22 23:27
转学VSTO应该想办法忘记使用EXCEL,直接用窗体程序就行。只有读入数据和输出数据或打印结果时才使用EXCEL对 ...

楼上的正解

TA的精华主题

TA的得分主题

发表于 2017-10-24 18:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 WANT-T 于 2017-10-24 18:27 编辑

完全可以,不过就是vba的方法,vb.net的语法1、先添加引用,根据你自己的版本来,我是vs2017,office2016,所以引用16.0
2、引入我命名空间,也就是图片最上面寻两句,我有注释。
3、画窗体加按钮,改控件名称,就不用说了吧。
4、剩下的就是代码 了,看图片,然后自己敲,就不贴了5、这就是你说的,cells方法来表示单元格,我用这个只是想告诉你理论上是可以的,实际上也是可以的。




QQ截图20171024181833.png
QQ截图20171024181914.png
QQ截图20171024181930.png
QQ截图20171024181943.png
QQ截图20171024181952.png

TA的精华主题

TA的得分主题

发表于 2018-1-23 18:21 | 显示全部楼层
用C#吧,学习VSTO,C#的资料充分些,熟手都用C#为主,市面已经有教材了,可以购买看看
VSTO的学习个人感觉QQ群还比较活跃些,可以加相关的VSTOQQ群学习。
本人最近也新开一关于VSTO方法的QQ群,有兴趣可以加入一起学习,QQ群名字:Excel催化剂插件交流群,群号:600275142

TA的精华主题

TA的得分主题

发表于 2018-3-5 10:46 | 显示全部楼层
mjzxlmg 发表于 2017-9-22 23:27
转学VSTO应该想办法忘记使用EXCEL,直接用窗体程序就行。只有读入数据和输出数据或打印结果时才使用EXCEL对 ...

但是从VBA中移植,很大部分都和工作表事件有关,不得不用 Excel对象吧?

TA的精华主题

TA的得分主题

发表于 2018-3-6 16:12 | 显示全部楼层
tswing 发表于 2018-3-5 10:46
但是从VBA中移植,很大部分都和工作表事件有关,不得不用 Excel对象吧?

还是思路的问题呀
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-12 05:02 , Processed in 0.052719 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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