欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 关于VBA读取EXCEL表单形成的多维数组返回问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4029人关注过本帖树形打印复制链接

主题:关于VBA读取EXCEL表单形成的多维数组返回问题

帅哥哟,离线,有人找我吗?
tiantian2888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/2/24 1:10:54
关于VBA读取EXCEL表单形成的多维数组返回问题  发帖心情 Post By:2015/2/24 22:03:29 [只看该作者]

一个excel 表单是一个列表,入下:
 股票代码         140930    141231      150331
300001             3366        4447        5789 
300002            7890         7834        3678

使用vba读取的结果,用两个FOR 循环,可以形成一个二维数组:   A[代码,0 to 2]  

但是由于金字塔只有一维数组,所以,在打开并读取EXCEL时,用FOR循环,每一行读取完成后,形成一个一维数组。 如:{300001 ,  3366, 4447,  5789 },读取完成后通过接口FLL.VARDATA方法传到金字塔里处理完。  这就带来一个问题。 这边数据没读取完,就要跳出VBS <% %>代码,执行金字塔代码, 之后再回到<%%>里重新执行外层循环,造成vba代码割裂, 这样能行的通吗?

如果行不通该如何解决?


代码如下:
 variable:gdrs[10]='ABC';

<%
SET abc = CreateObject("scripting.filesystemobject")
path="D:\test.xlsm"
  If abc.fileexists(path) = True Then
    SET wkbone13 = Workbooks.Open(path)
      hsnumber=wkbone13.sheets("sheet1").cells(1,1).currentregion.columns.count-2 '数组第一个元素是代码,其余的元素为数字
      redim gdhs(0 to hsnumber-1)
      stknumber=wkbone13.sheets("sheet1").cells(1,1).currentregion.rows.count
    for i=2 to stknumber       
    strcode=right(wkbone13.sheets("sheet1").cells(i,2),6)
    gdhs(0)=strcode
    for j=1 to stknumber-1  '数组的第一个值是代码。
        gdhs(j)=wkbone13.sheets("sheet1").cells(i,3+j)
        next 
        ffl.vardata("gdrs")=gdhs  ’形成一维数组,需要回金字塔处理,造成完成FOR 循环被割裂了,还需关闭EXCEL,这些任务分离下面的代码去了,这样能行吗?行不通该 b                                                                 如何解决,请高手帮忙解答。
%>
                      //处理一维数组
                     strcode:=gdrs[1];
                     for i=2 to 10 do       
                           begin 
         DRAWTEXT(1,HIGH, gdrs[1]),COLORYELLOW;
                  end
<%
next                                   '被割裂的FOR循环
     'wkbone13.Close True   '关闭EXCEL。
  end
%>  

 回到顶部