gpt4 book ai didi

vba - 使用 VBA 从文本文件中检索和调用 VBA 代码

转载 作者:行者123 更新时间:2023-12-04 21:00:42 27 4
gpt4 key购买 nike

我正在做一个项目来使用 rule-triggered 处理一些传入的 Outlook 邮件。 VBA 代码。

但是,我不想在代码需要更改的任何时候手动更新每个用户收件箱的代码。所以我的想法是把一个文本文件放在一个共享驱动器上,让 VBA 把那个文本文件拉下来,把它当作代码来对待。本质上,我想像使用一个小代码库一样使用该文本文件。

我找到了this link这让我非常接近我的目标。但是,我遇到了一些问题。

这是我放在一起的代码。它附加到我插入 Excel 文件的矩形形状的单击事件。最终,我会将其移至 Outlook,但我只是先使用 Excel VBA 进行基本测试。

Sub Rectangle1_Click()
On Error GoTo Err_Handler

Dim enviro As String
Dim myFile As String

'Pull code "library" from text file on user's desktop
'This will eventually be changed to reside on a shared drive
enviro = CStr(Environ("USERPROFILE"))
myFile = enviro & "\Desktop\hello_vba.txt"

'If the "Library" module already exists, delete it
For Each a In Modules
If a.Name = "Library" Then
a.Delete
Exit For
End If
Next

'Add a new module
Set m = Application.Modules.Add

'Rename it to "Library"
m.Name = "Library"

'Insert the text from the other file to this new module
m.InsertFile myFile

'Call the hello() subroutine from the retrieved text file
Library.Hello

Exit_Here:
'Cleanup code goes here
Exit Sub

Err_Handler:
MsgBox Err.Description
Resume Exit_Here
Exit Sub

这是名为“hello_vba.txt”的外部文本文件的内容:
Sub Hello()
MsgBox "Hello"
End Sub

我第一次运行它时,使用调试器,我可以看到它创建了新模块,然后进入显示以下内容的行:
m.Name = "Library"

然后在调试器中弹出一个窗口,上面写着:

Can't enter break mode at this time



当我单击该消息上的继续时,我得到一个

Object Required



错误信息。如果它再次运行它,我会收到更多错误消息,但我最终会弹出一个成功的“Hello”消息框。

我想知道我是否可能没有正确“调暗”“a”或“m”变量,或者尝试拉入文本文件并立即将其视为代码时是否存在问题?

有任何想法吗?

最佳答案

要运行新代码,请尝试使用 Application.Run 而不是 Library.Hello
它会写成:

Application.Run("Hello")

那样有用吗?

关于vba - 使用 VBA 从文本文件中检索和调用 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37080878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com