Excel宏中自定义函数如何返回多值?

jsntsam 2003-08-20 08:08:10

我想计算结果的多个值作为Range对象返回

定义形式下面
Public Function F1(PRange As Range, N As Integer) As Range


End Function

但是Range对象是依赖于worksheet的,new都不行。

要达到上面的目的,如何做?
...全文
630 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gigilee 2004-03-24
  • 打赏
  • 举报
回复
那你就把那些range设值为全局变量吧
FredLee2004 2004-03-24
  • 打赏
  • 举报
回复
试试下面的代码:

Option Base 1

Public Function MyTest(ByRef TheData As Variant, ByVal RowNum As Long, ByVal ColNum As Long) As Variant
Dim RowLoop As Long, ColLoop As Long
Dim NewCell() As Variant
*** ReDim NewCell(RowNum, ColNum)
For RowLoop = 1 To RowNum
For ColLoop = 1 To ColNum
*** NewCell(RowLoop, ColLoop) = TheData.Cells(RowLoop, ColLoop).Value
Next ColLoop
Next RowLoop
MyTest = NewCell
End Function

上述代码要求提供Range参数以及该Range的行数和列数,并返回计算结果。
***行设定返回数据的格式和内容,你应该自己调整。
jsntsam 2004-03-23
  • 打赏
  • 举报
回复
up
HawaiiLeo 2003-08-23
  • 打赏
  • 举报
回复
Dim Num(6) As Integer
........

Public Sub F1(Num() As Integer, PRange As Range, N As Integer)

'把计算得到的值符值给数组Num就行了

End Sub

'在这就可以引用数组Num中的值了。
changechange 2003-08-21
  • 打赏
  • 举报
回复
连对象一起传进来不就可以了?
jsntsam 2003-08-21
  • 打赏
  • 举报
回复
以上两位的方法我都考虑过,但都没有成功。

哪位能不能具体点?
LeeZi 2003-08-21
  • 打赏
  • 举报
回复
数组呀,老大。

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧