本文介绍了从函数,子类型或类型返回多个值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我想知道,如何从VBA中的函数,子类型或类型返回多个值?我有这个主要的子应该从几个函数中收集数据,但函数只能返回一个值。那么如何将多个返回给子?
解决方案
您可能想要重新考虑应用程序的结构,如果您真的,真的想要一种方法来返回多个值。
要么分开,所以不同的方法返回不同的值,或找出一个逻辑分组,并建立一个对象来保存该数据可以反过来返回。
'这是VB6 / VBA相当于一个struct
'的数据,无方法
私有类型设置
root作为字符串
路径作为字符串
name_first作为字符串
name_last作为字符串
overwrite_prompt作为布尔
结束键入
Public Sub Main()
Dim mySettings As settings
mySettings = getSettings()
End Sub
'如果你希望这是公开的,你最好用类而不是用户定义类型(UDT)
Private Function getSettings()作为settin gs
Dim sets As设置
在这里设置检索值
.root =foo
.path =bar
.name_first =Don
.name_last =Knuth
.overwrite_prompt = False
End With
'返回一个结构,vb6 / vba-style
getSettings =设置
结束功能
So I was wondering, how can I return multiple values from a function, sub or type in VBA?I've got this main sub which is supposed to collect data from several functions, but a function can only return one value it seems. So how can I return multiple ones to a sub?
解决方案
You might want want to rethink the structure of you application, if you really, really want one method to return multiple values.
Either break things apart, so distinct methods return distinct values, or figure out a logical grouping and build an object to hold that data that can in turn be returned.
' this is the VB6/VBA equivalent of a struct
' data, no methods
Private Type settings
root As String
path As String
name_first As String
name_last As String
overwrite_prompt As Boolean
End Type
Public Sub Main()
Dim mySettings As settings
mySettings = getSettings()
End Sub
' if you want this to be public, you're better off with a class instead of a User-Defined-Type (UDT)
Private Function getSettings() As settings
Dim sets As settings
With sets ' retrieve values here
.root = "foo"
.path = "bar"
.name_first = "Don"
.name_last = "Knuth"
.overwrite_prompt = False
End With
' return a single struct, vb6/vba-style
getSettings = sets
End Function
这篇关于从函数,子类型或类型返回多个值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!