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

时间:2015-03-01 12:24:28

标签: excel vba function excel-vba

我是一名新的vba程序员,我遇到了一些麻烦。

这是我的功能:

Function CopiePaste(CASEREF As Range, REF)

Dim o As Range

For Each o In CASEREF

   o.Value = REF

Next

End Function

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

提前致谢

2 个答案:

答案 0 :(得分:1)

VBA,中,您将使用而不是功能

以下是 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

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

答案 1 :(得分:1)

我会提出一些建议,但我也不是专家:-) 第一:函数应该返回一个值到调用函数的代码中的位置。 在这里,你想要做一些事情而不是返回一个值,所以你应该使用sub()而不是函数。

其次,我认为您还应声明“REF”变量以使其起作用(除非它是公共变量)。