ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: xuesheng1

[原创] 导入通达信股票数据至内存数组中的方法和代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-11 11:36 | 显示全部楼层
我是来讨说法的 发表于 2016-1-11 09:36
excel2007和2010最多有1048576行

可我设置了460万行没问题,500万就自动退出了

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 20:17 | 显示全部楼层
我是来讨说法的 发表于 2016-1-11 09:34
COPY *.txt 汇总.txt
之后把汇总文件在EXCEL中分列就完成了

这样做可以,但怎么记录每只股票的起点与终点那?,如果没有起点与终点,后期的统计将无从完成,至少不可能实现我的统计方法,虽然我一次性导入内存,但同时记录每只股票的数据用于后期单独单期统计

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 20:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我是来讨说法的 发表于 2016-1-11 09:36
excel2007和2010最多有1048576行

你说的是单元格吧,我导入的是至内存数组,excel内存里完全可以存放2800万行,不需要输出至单元格,计算完毕也将极大缩小行数,输出的数值将只有几十行或几行

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 20:29 | 显示全部楼层
renahu 发表于 2016-1-11 11:36
可我设置了460万行没问题,500万就自动退出了

excel2007肯定不行的,我以前试过,如果您是2007及以前版本,请下载2013版本,再有导入至内存数组,和您计算机的内存大小有关系,如果您内存太小,请增加虚拟内存

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 20:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我是来讨说法的 发表于 2016-1-11 09:34
COPY *.txt 汇总.txt
之后把汇总文件在EXCEL中分列就完成了

如果你有好的方法,谢谢你能写出来与大家共享,也能让我们这些渴望知识与学习的人得到帮助,我代码做错了,我做繁琐了,我会虚心学习,如果仅是说些我做的有必要无必要,就不要在我这里跟帖了

TA的精华主题

TA的得分主题

发表于 2016-1-11 21:19 来自手机 | 显示全部楼层
xuesheng1 发表于 2016-1-10 23:29
对的,我开始也是这样导出的,但后续如果统计众多,计算很慢,不如一次性装入内存,或许我没有想到更好的 ...

我的方法确实慢,一个票算下来差不多20s左右,我来试试你的方法。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 21:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ychack 发表于 2016-1-11 21:19
我的方法确实慢,一个票算下来差不多20s左右,我来试试你的方法。

好的,如果那里有问题请留言,我上线后会给您回复

TA的精华主题

TA的得分主题

发表于 2016-1-11 21:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xuesheng1 发表于 2016-1-11 20:29
excel2007肯定不行的,我以前试过,如果您是2007及以前版本,请下载2013版本,再有导入至内存数组,和您 ...

我的是2010,我在网上查了一下好像跟excel是32位还是64位有关,你的excel或者说VBA是64位吧?据说32位VBA理论上最多只能使用2GB内存,而64位VBA就不受限制。
参见:
请问VBA中一个数组最大的容量是多少?
http://club.excelhome.net/thread-750841-1-1.html
(出处: ExcelHome技术论坛)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 22:01 | 显示全部楼层
renahu 发表于 2016-1-11 21:46
我的是2010,我在网上查了一下好像跟excel是32位还是64位有关,你的excel或者说VBA是64位吧?据说32位VBA ...

我是2013,64位的,应该有关系,我也是菜鸟,这个也不懂,VBA内存数组最大容量我也不知道,也不会算,但我用笨方法测算的
sub aa()
dim arr(1 to 5000000,1 to 8)
Erase arr
End Sub
按F8,如果能执行,不退出或不提示内存溢出,就可以运算,试着改变行数数值和列数数值,来确定您的计算机最大能容纳的行数和列数

TA的精华主题

TA的得分主题

发表于 2016-1-11 22:28 | 显示全部楼层
本帖最后由 renahu 于 2016-1-11 22:30 编辑
xuesheng1 发表于 2016-1-11 22:01
我是2013,64位的,应该有关系,我也是菜鸟,这个也不懂,VBA内存数组最大容量我也不知道,也不会算,但我 ...

对了,那几个高手给你优化后,速度提高到什么程度?我也挺好奇的。呵呵,现在大数据挺时髦。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-1 21:31 , Processed in 0.041679 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表