一个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
%>