似乎也是一个愚蠢的问题,但我无法弄清楚如何写入VBA中的单元格...我在“Module1”中有一个看起来像这样的函数:
Function Foo(bar As Boolean)
Range("A1").Value = 1
Foo = ...
End Function
然后说我将Cell A2的公式设置为:
=Foo(true)
如果我取出范围设置行,则调用本身有效......在这种情况下,将调用单元格设置为foo值。但我希望这最终能够同时写入大量的细胞,而不是每个细胞都有不同的函数调用。我做错了什么???
如果此代码应该按原样运行... Excel 2007中是否存在可能阻止编辑单元格的设置,或类似的内容?
答案 0 :(得分:2)
根据this page,Excel用户定义的函数不可能改变工作簿的其他部分。看起来你可能不得不尝试另一种方式。
答案 1 :(得分:0)
要在VBA中创建自定义功能,请在模块中输入以下内容
Public Function MyCalc(ByRef r as Range) as Double
MyCalc = r.Value^2
End Function
或
Public Function MyCalc(ByVal x as Double) as Double
MyCalc = x^2
End Function
并在工作表上将其用作=MyCalc(A2)
,它返回并设置适当的值。选择是否要传递值或范围,具体取决于您要执行的操作。