以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 关于VBA读取EXCEL表单形成的多维数组返回问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=75831) |
-- 作者:tiantian2888 -- 发布时间:2015/2/24 22:03:29 -- 关于VBA读取EXCEL表单形成的多维数组返回问题 一个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 %>
|