ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA转换VSTO--VB.NET,求助写法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-3-26 11:33 | 显示全部楼层 |阅读模式
Sub xx()
            Dim r%, i%, arr, arr1, d As Object, str As String, m
        Set d = CreateObject("scripting.dictionary")
        With Worksheets("sheet1")
            r = .Cells(.Rows.Count, 1).End(xlUp).Row
            arr = .Range("a1:E" & r)
            For i = 2 To UBound(arr)
                str = arr(i, 1) & "|" & arr(i, 2) & "|" & arr(i, 3) & "|" & arr(i, 4)
                If Not d.exists(str) Then
                    Set d(str) = CreateObject("scripting.dictionary")
                End If
                d(str)(arr(i, 5)) = ""
            Next i
            For i = 0 To d.Count - 1
                arr1 = d(d.keys()(i)).keys
                m = Application.Small(arr1, 1)
                t = t + 1
                .Cells(t + 1, 8).Resize(1, 4) = Split(d.keys()(i), "|")
                .Cells(t + 1, 12) = m
            Next i
        End With
    End If
End Sub
求助VBA语句转换到VB.NET语法里面,完全搞不懂 ,求各位大师解惑,谢谢


TA的精华主题

TA的得分主题

发表于 2021-3-26 15:11 | 显示全部楼层
我的一点体会,先不管什么语言,简单的说,程序就是一个一个helllo world的叠加,官方文档就有代码演练如何访问单元格,关键有耐心按照规范一步步往下推演,vb.net和vb语法很接近,自己敲出来的代码才记忆深刻。建议不要一开始就写那些一句代码完成多个功能的句子,看似简练,后续有会有许多的困惑。excel最关键最基础的就是访问Range对象,这步悟了后面的路就好走了。

TA的精华主题

TA的得分主题

发表于 2021-3-27 15:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-12-29 15:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lipton 发表于 2021-3-26 15:11
我的一点体会,先不管什么语言,简单的说,程序就是一个一个helllo world的叠加,官方文档就有代码演练如何 ...

说的很好,说的一针见血,直击问题本质,range

TA的精华主题

TA的得分主题

发表于 2023-9-10 11:01 | 显示全部楼层
直接复制到VSTO,然后修改红色的地方,可以使用对象浏览器搜索那个错误的属性或方法,直接复制对象浏览器复制的第一个

TA的精华主题

TA的得分主题

发表于 2024-2-22 20:43 | 显示全部楼层
lipton 发表于 2021-3-26 15:11
我的一点体会,先不管什么语言,简单的说,程序就是一个一个helllo world的叠加,官方文档就有代码演练如何 ...

说的太好了,一针见血

TA的精华主题

TA的得分主题

发表于 2024-2-26 10:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
VBA和VB的语法大同小异吧,如果用VS的话,直接把代码粘过去,顶多就是添加一些引用引用,根据VS的智能提示就能搞了吧!

TA的精华主题

TA的得分主题

发表于 2024-4-4 20:17 | 显示全部楼层
vb.net是完全面向对象的,如果用 vb.net还不如用 C#,估计更好理解一点。
类库也更多,学习资料也更多。如果会VBA,学习C#也很快。

TA的精华主题

TA的得分主题

发表于 2024-6-1 18:18 | 显示全部楼层
会写vBA类能构造模型,然后在vb.net吧。vba的思维还是处于入门阶段。vb.net是面向对象写代码,什么是对象。对象就是创造的一个机制。类,就是最基本的一个对象。比如红军要过大渡河。可以选择在岸边砍竹子,找船工,舵手等一系列的操作,也可以事先做好一个船,然后不断复制(对象的实例化)。这样过河就只是坐船划桨。而省去了制作船的过程。这个做船的过程就是一个类,船就是对象。 具备一定的共性。编程就是要不断的完善自己的类库。挖掘共性使其自动化。从而实现强大的功能。

TA的精华主题

TA的得分主题

发表于 2024-6-1 18:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
vba 运行有时要引用些文件,比如dll文件。vb.net的引用和和这个道理一模一样。就是利用事先创造好的类文件。vba中,可以自己创造个dll文件,然后自己引用。  这样看来vb。net 要引用好些个类库文件。这样无疑是提高了效率,省略了自己开发各种dll文件的过程。否则,要靠自己写,十辈子都写不好。因为太抽象太难,不是天才,真的搞不出几个强大的基础dll文件来。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-8 08:58 , Processed in 0.041704 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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