FAQ > 金融建模 > 第三方交互 > Excel

Q:如何在Excel里面调用天软函数    

  • A:
        天软提供了插件及VBA两种方式来实现Excel调用天软;插件方式由于每个单元格都需要和天软进行一次交互,速率较慢,这里建议用户使用VBA的模式,同MATLAB调用天软,基本模式是相同的,只需要用户修改函数名及参数的个数即可,相关案例可参考附件。
    附件:天软科技-如何在VBA调用天软模型(范例).xls
    代码解释如下:
    Private Sub CommandButton1_Click()
            '初始化ts对象
        Dim Obj As Object
        Set Obj = CreateObject("TSExpert.CoExec")
        
            '设置函数的参数信息
        Dim Args(0 To 3) As Variant
        Args(0) = Worksheets("VBA获取数据").Range("A2")
        Args(1) = Worksheets("VBA获取数据").Range("B2")
        Args(2) = Worksheets("VBA获取数据").Range("C2")
        Args(3) = Worksheets("VBA获取数据").Range("D2")

            '调用天软的函数,并将数据放到Excel对应的位置
        v = Obj.RemoteCallFunc("stocks_zf", Args)
        Call ClearOldData("VBA获取数据", "A5:Z2000")
        sR = GetTableRange("VBA获取数据", 5, 1, v)
        Worksheets("VBA获取数据").Range(sR) = v
     End Sub
        '获得数据的区域
    Public Function GetTableRange(SheetName, FromRow, FromCol, Data)
        RowCount = UBound(Data, 1) + 1
        ColCount = UBound(Data, 2) + 1
        Set MC = Worksheets(SheetName).Cells(FromRow, FromCol)
        Set EC = Worksheets(SheetName).Cells(FromRow + RowCount - 1, FromCol + ColCount - 1)
        sR = MC.Address() + ":" + EC.Address()
        GetTableRange = sR
    End Function
        '清除原数据
    Public Sub ClearOldData(SheetName, sR)
        Worksheets(SheetName).Range(sR) = ""
    End Sub