从VBA中的类模块提取特定variables到标准模块

所有,下面的代码来自彭博社。 它旨在从服务器提取批量数据。 代码工作,但我想提取在类模块中生成的特定variables,并将其带到用户定义函数的常规模块。 谢谢您的帮助。

Option Explicit Private WithEvents session As blpapicomLib2.session Dim refdataservice As blpapicomLib2.Service Private Sub Class_Initialize() Set session = New blpapicomLib2.session session.QueueEvents = True session.Start session.OpenService ("//blp/refdata") Set refdataservice = session.GetService("//blp/refdata") End Sub Public Sub MakeRequest(sSecList As String) Dim sFldList As Variant Dim req As Request Dim nRow As Long sFldList = "CALL_SCHEDULE" Set req = refdataservice.CreateRequest("ReferenceDataRequest") 'request type req.GetElement("securities").AppendValue (sSecList) 'security + field as string array req.GetElement("fields").AppendValue (sFldList) 'field as string var Dim cid As blpapicomLib2.CorrelationId Set cid = session.SendRequest(req) End Sub Public Sub session_ProcessEvent(ByVal obj As Object) Dim eventObj As blpapicomLib2.Event Set eventObj = obj If Application.Ready Then If eventObj.EventType = PARTIAL_RESPONSE Or eventObj.EventType = RESPONSE Then Dim it As blpapicomLib2.MessageIterator Set it = eventObj.CreateMessageIterator() Do While it.Next() Dim msg As Message Set msg = it.Message Dim Security As Element Set Security = msg.GetElement("securityData").GetValue(0) Sheet1.Cells(4, 4).Value = Security.GetElement("security").Value Dim fieldArray As Element Set fieldArray = Security.GetElement("fieldData") Dim field As blpapicomLib2.Element Set field = fieldArray.GetElement(0) If field.DataType = 15 Then Dim numBulkValues As Long numBulkValues = field.NumValues '76 Dim index As Long For index = 0 To numBulkValues - 1 Dim bulkElement As blpapicomLib2.Element Set bulkElement = field.GetValue(index) Dim numBulkElements As Integer numBulkElements = bulkElement.NumElements '2 elements per each pt ReDim Call_Sch(0 To numBulkValues - 1, 0 To numBulkElements - 1) As Variant Dim ind2 As Long For ind2 = 0 To numBulkElements - 1 Dim elem As blpapicomLib2.Element Set elem = bulkElement.GetElement(ind2) Call_Sch(index,ind2)=elem.Value Sheet1.Cells(index + 4, ind2 + 5) = elem.Value Next ind2 Next index Else Call_Sch(index,ind2)=field.Value Sheet1.Cells(index + 4, ind2 + 5).Value = field.Value End If Loop End If End If End Sub 

我试图得到的variables,具体来说就是Call_Sch。 我想要一个在主模块中的函数来识别variables。 再次感谢。

在使用ReDim之前不需要声明一个variables; ReDim可以声明一个variables。 但是,如果你添加了:

 Public Call_Sch() as Variant ' Insert correct data type here 

那么你将能够通过以下方式引用它:

 <YourClassVaraibleName>.Call_Sch