如何将参数传递给Excel按钮宏

时间:2017-06-22 16:47:16

标签: excel vba excel-vba

我试图找到一种方法将params传递给在Excel(2010)中分配给按钮的宏。我已经在this帖子中看到了一些建议的解决方案,但它们都不适合我 - 也许是因为我的设置?

我在加载项文件(macros.xlam)中定义了一个不带参数的宏。我在* .xlsm文件中添加了一个按钮,并将宏附加到它。当我点击按钮宏被调用,它工作正常。我的宏名为导出,它位于 CSV 模块中,所以在按钮的属性中我调用了 CSV.Export < / em>的

我在宏中添加了一个int参数,所以定义现在看起来像这样:

Sub Export(a As Integer)
    ....
End Sub

现在我想让按钮传递1作为参数。我在Sub的第一行设置了一个断点并尝试了各种方法,但都没有工作:

&#39; CSV.Export 1&#39; - 当我点击按钮没有任何反应时,断点不会被捕获。此外,当我再次编辑宏时,结果表明我输入的内容自动替换为&#39; sheet_name.xlsm&#39;!&#39; CSV.Export 1&#39;。如果我离开它仍然无效。

&#39; CSV.Export(1)&#39; - 当我点击按钮没有任何反应时,断点不会被捕获。这个不会自动替换。

&#39; macros.xlam&#39;!&#39; CSV.Export 1&#39; - 当我点击按钮没有任何反应时,断点不会被捕获。稍后编辑后发现它被替换为&#39; sheet_name.xlsm&#39;!&#39; CSV.Export 1&#39;

&#39; macros.xlam&#39;!&#39; CSV.Export(1)&#39; - 当我点击按钮没有任何反应时,断点不会被捕获。稍后编辑后,它会被&#39; CSV.Export(1)&#39;

取代

CSV.Export 1 - 当尝试关闭按钮属性窗口时显示错误,该公式包含错误并且不允许保留该错误

CSV.Export(1) - 这会返回一个错误,说明&#34;公式太复杂而无法分配给对象&#34;。

我希望我的宏可以自定义(用户可以将参数传递给它)。同时我想避免使用hacky硬编码解决方案,例如调用没有params的sub,然后总是假设单元格A1有第一个参数,A2有第二个,依此类推。

0 个答案:

没有答案