我是一名新的vba程序员,我遇到了一些麻烦。
这是我的功能:
Function CopiePaste(CASEREF As Range, REF)
Dim o As Range
For Each o In CASEREF
o.Value = REF
Next
End Function
我想在函数中定义多个单元格的值,但我的代码不起作用,我不明白为什么?
提前致谢
答案 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”变量以使其起作用(除非它是公共变量)。