Olhado_ 发表于 2022-7-6 14:29:05

退出LISP函数;但是n

我有一个VBA程序,运行一个LISP文件,很好,来自“vbarun”。但是,我正在尝试创建另一个加载VBA程序的LISP文件。
 
好吧,我可以很好地做到。问题是,除了VBA代码调用的LISP文件运行到我的错误陷阱(退出LISP文件)时,所有这些都可以工作。程序不会继续,就像我使用“vbarun”运行程序一样。
 
我相信这是因为exit语句退出了LISP,它退出了我的第一个程序。有办法吗?是否有一个LISP语句刚刚退出LISP函数?
 
换句话说,步骤如下:
 
1.运行LISP_A
2.LISP\u A加载LISP\u B并加载/运行VBA\u A
3.VBA\u A调用LISP\u B
-如果LISP\u B遇到错误,则调用exit语句(在LISP\u B中),整个程序崩溃。
 
谢谢
克里斯

ASMI 发表于 2022-7-6 14:56:09

隐马尔可夫模型。。。这不是一个好方法。VBA和AutoLISP程序在各自的命名空间中异步工作。
 
为什么会出现如此奇怪的情况?我相信,只要使用一个编程环境,即LISP或VBA,就可以更轻松地解决所有问题。当然,用lisp运行VBA是正常的,但用VBA运行lisp不是。

Olhado_ 发表于 2022-7-6 15:10:41

谢谢你的回复。
 
从您的回复中,我可能不得不要求每个人将“LISP\u B”加载到他们的启动套件中,这就是我在测试VBA程序时所做的。
 
我只是希望有另一种方式。

wizman 发表于 2022-7-6 15:19:05

可能是?
(if
(vl-catch-all-error-p
   (vl-catch-all-apply
   '(lambda ()
      (exit)
      )
   )
   )
...load vba_a...
)

leo 发表于 2022-7-6 15:37:24

使用(vl exit with error“”)而不是(exit)
页: [1]
查看完整版本: 退出LISP函数;但是n