VBA:如何更改函数中的单元格的值?

我是一个新的VB程序员,我有一些麻烦。

这是我的function:

Function CopiePaste(CASEREF As Range, REF) Dim o As Range For Each o In CASEREF o.Value = REF Next End Function 

我想在一个函数中定义多个单元格的值,但是我的代码不起作用,我不明白为什么?

提前致谢

VBA中,您可以使用Sub而不是Function

这是一个Sub可以使用一个函数来完成的方法:

 Sub MAIN() Dim MSG As String MSG = CopiePaste(Range("A1:A10"), 123) MsgBox MSG End Sub Function CopiePaste(CASEREF As Range, REF) As Variant Dim o As Range For Each o In CASEREF o.Value = REF Next CopiePaste = "Mission Accomplished!" End Function 

注意:自定义函数实际上并不出现在单元格中,而是从子集中调用。

我会提出一些build议,但我不是一个专家:-)首先:一个函数应该返回一个值的地方在函数被调用的地方。 在这里,你想要做一些事情而不是返回一个值,所以你应该使用一个sub()而不是一个函数。

其次,我想你也应该声明“REF”variables来工作,(除非它是一个公共variables)。