我希望通过VBA函数填充电子表格中的单元格。例如,我想在一个单元格中输入=FillHere(),然后几个单元格会被填充上一些数据。
我尝试使用以下函数:
Function FillHere()
Dim rngCaller As Range
Set rngCaller = Application.Caller
rngCaller.Cells(1, 1) = "HELLO"
rngCaller.Cells(1, 2) = "WORLD"
End Function
当我尝试修改范围时,它就会崩溃。然后我尝试了这个(即使这不是我要寻找的行为):
Function FillHere()
Dim rngCaller As Range
Cells(1, 1) = "HELLO"
Cells(1, 2) = "WORLD"
End Function
这也不起作用。但是,如果我使用F5从VBA启动此函数,则它可以正常工作!似乎在调用函数时无法修改电子表格上的任何内容...尽管有些库可以实现这一点...
我还尝试过(实际上这是我的第一个想法)从函数返回数组。问题是我只得到了数组中的第一个元素(有一个诀窍,涉及用公式选择整个区域,在左上角+F2+CTRL-SHIFT-ENTER,但这意味着用户需要提前知道数组的大小)。
我真的被这个问题困住了。我不是最终用户,所以我需要一个非常容易使用的东西,最好根本没有参数。
PS:很抱歉我之前已经问过这个问题,但当时我没有注册,现在似乎我不能再参与其他的讨论了。