excel - VBA 执行存储在单元格中的代码 - 有可能吗?

标签 excel vba

是否可以执行在特定 excel 单元格中编写的代码?

例如:在 Range("A1")我有 text -> debug.print("Test") .我需要一些方法来从 VBA 代码中执行它。

可能吗?

最佳答案

首先,使用this answer以确保以编程方式访问 VBA 模型。然后,使用 this method这为位于工作表单元格中的简单命令创建了一个字符串解析器。这应该足以让你继续前进。

演示:

enter image description here

Option Explicit

Sub test()
    Dim strCode As String
    strCode = Sheet1.Range("A1").Text
    StringExecute strCode
End Sub

Sub StringExecute(s As String) 
    ' Credits to A.S.H., see https://stackoverflow.com/questions/43216390/how-to-run-a-string-as-a-command-in-vba
    Dim vbComp As Object
    Set vbComp = ThisWorkbook.VBProject.VBComponents.Add(1)
    vbComp.CodeModule.AddFromString "Sub foo()" & vbCrLf & s & vbCrLf & "End Sub"
    Application.Run vbComp.Name & ".foo"
    ThisWorkbook.VBProject.VBComponents.Remove vbComp
End Sub

关于excel - VBA 执行存储在单元格中的代码 - 有可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46071620/

相关文章:

html - Excel 导出到重叠的 HTML 单元格

vba - 在 Excel 中将 RTF(富文本格式)代码转换为纯文本

vba - 打开工作簿时,Excel 宏刷新所有数据连接表和数据透视表,然后将数据透视表导出到 csv

c++ - 将带时区的大纪元时间转换为 Excel 格式时间?

vba - 获取由 Worksheet.Copy 复制的最后一个工作表的句柄

python - 哪种机制允许 Excel 将用户的操作传达给外部?

excel - 如何使用公式引用选项卡名称

vba - 无法使用Word VBA保存文本颜色的更改?

vba - 从 Excel 列表创建文件夹

excel - 禁用 VBA 用户窗体 'x' ,但仍允许卸载我