如何从VBA写入单元格

时间:2010-11-12 20:13:45

标签: excel-vba vba excel

即使对于VBA新手,

似乎也是一个愚蠢的问题,但我无法弄清楚如何写入VBA中的单元格...我在“Module1”中有一个看起来像这样的函数:

Function Foo(bar As Boolean)
  Range("A1").Value = 1
  Foo = ...
End Function

然后说我将Cell A2的公式设置为:

=Foo(true)

如果我取出范围设置行,则调用本身有效......在这种情况下,将调用单元格设置为foo值。但我希望这最终能够同时写入大量的细胞,而不是每个细胞都有不同的函数调用。我做错了什么???


如果此代码应该按原样运行... Excel 2007中是否存在可能阻止编辑单元格的设置,或类似的内容?

2 个答案:

答案 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),它返回并设置适当的值。选择是否要传递值或范围,具体取决于您要执行的操作。