A:天软提供与excel交互的相关接口支持批量取数,包括:
1.execl中直接调用天软函数返回数组;
2.excel中使用vba与天软交互对单元格遍历赋值。
实现范例
范例:在excel中返回一组代码在指定日期序列内每日的涨幅
方式一:调用天软函数返回数组数据
参考:FAQ:
Q:Excel调用天软函数的方法说明
模型:附件:Tsdn_getdatatoexcel.fun
Tsdn_getdatatoexcel
Function Tsdn_getdatatoexcel(stockarr,datearr);
Begin
{
说明:导出数组数据到excel
参数:
stockarr:一维字符串数组,代码列表
datearr:一维日期数组,日期序列
}
rt:=array();
for i,stock in stockarr do
for j,datetime in datearr do
rt[j,i]:=specall(stockzf3(),array(pn_stock():stock,pn_date():datetime));
return rt;
End;
实现步骤
1.编辑取数模型,比如:Tsdn_getdatatoexcel
2.选择数据显示范围,
下标如果是数字格式不会返回,如果是字符串格式则会返回
3.输入调用代码,比如:=tsl("Tsdn_getdatatoexcel",B1:K1,A2:A9),然后按ctrl+shift+enter 进行确认
方式二:使用vba交互遍历赋值
参考:FAQ:
2015-02-09-应用专题-第三方交互07:天软平台与VBA交互
vba代码:
Public Sub 批量取数()
fcol = 2
frow = 2
Sheet = "vba交互"
Set Obj = CreateObject("TSExpert.CoExec")
For i = 0 To 9
Obj.Stock = Worksheets(Sheet).Cells(1, fcol + i)
For j = 0 To 7
Obj.times = Worksheets(Sheet).Cells(frow + j, 1)
Data = Obj.RemoteCallFunc("StockZf3", "")
Value = Data
Worksheets(Sheet).Cells(frow + j, fcol + i) = Value
Next j
Next i
End Sub
结果:
