VBA开头白度提问,然后AI写程序,根据结果改写lisp
本帖最后由 自贡黄明儒 于 2024-7-26 13:36 编辑自动新建模块module,并写入代码:
搜了大半天,也问了好多人。最后还是白度的AI帮我写的。为记念这一重要时刻,贴出来。。。
VB如下
Sub CreateModule()
Dim vbProj As Object
Dim vbComp As Object
' 设置对当前工程的引用
Set vbProj = Application.VBE.ActiveVBProject
' 添加一个新的module
Set vbComp = vbProj.VBComponents.Add(1)
' 设置module的名称
'vbComp.Name = "MyNewModule"
' 现在可以在module中添加代码了
vbComp.CodeModule.AddFromString "Sub MySub()" & vbCrLf & _
" MsgBox ""Hello, World!""" & vbCrLf & _
"End Sub"
' 可选:激活module编辑器
Application.VBE.ActiveCodePane.CodeModule.InsertLines 1, "'"
Application.VBE.ActiveCodePane.CodeModule.InsertLines 2, "'" & vbTab & "Created by CreateModule macro"
Application.VBE.ActiveCodePane.CodeModule.InsertLines 3, "'"
Application.VBE.ActiveCodePane.CodeModule.InsertLines 4, ""
' 提示用户module已创建
MsgBox "Module created successfully!"
End Sub
在lisp如下
(defun c:Example_VBE (/ ACTIVEVBPROJECT CODEMODULE MODULE NEWROUTINE VBCOMPONENTS VBE)
(setq VBE (vla-get-VBE (vlax-get-acad-object))) ;ActiveVBProject
(setq ActiveVBProject (vlax-get-property VBE 'ActiveVBProject))
(setq VBComponents (vlax-get-property ActiveVBProject 'VBComponents))
(setq module (vlax-invoke VBComponents 'Add 1))
(setqnewRoutine
(strcat "Sub Dynamic_Procedure()"
"\n MsgBox \"New subroutine1.\""
"\nEnd Sub"
)
)
(setq CodeModule (vlax-get-property module 'CodeModule))
(vlax-invoke CodeModule 'AddFromString newRoutine)
)
自贡黄明儒 发表于 2024-7-23 16:12
前半句“lisp的终点是调用VB”,表示赞同。后半句,就不知道你是什么意思了。
写lisp的人没有注意到,很多时候写了两个for去比较数据.
然后这个for在lisp上面还不能中断.
和尚777这里就用了dictionary词典来减少时间复杂度
http://bbs.mjtd.com/thread-186202-1-1.html
词典的原理就是数组长度取模,这样就是O(1)速度. 你有种再说一遍 发表于 2024-7-23 14:31
lisp的终点是调用VB,如果连词典概念都没有,那么连时间复杂度都不晓得.嘻嘻
前半句“lisp的终点是调用VB”,表示赞同。后半句,就不知道你是什么意思了。 lisp的终点是调用VB,如果连词典概念都没有,那么连时间复杂度都不晓得.嘻嘻
以后我们都是项目经理,代码可以不会写,但一定要懂上层架构和基本原理。 虽然看不懂,但是我很想学! 干嘛的。看起来很牛逼的样子。 恭喜黄工迈入人工智能时代! 恭喜黄工迈入人工智能时代! AI这么厉害了么,但是最厉害的还是会使用AI的人 tranque 发表于 2024-7-23 15:56
AI这么厉害了么,但是最厉害的还是会使用AI的人
网上搜不到,资料也找不到。百度搜,以VBA开头,就会自动写程序了,可能不完善,只能VBA开头。
页:
[1]
2