ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 600多M的大文件如何按要求提取所需部分数据

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-20 10:00 | 显示全部楼层
dudebad 发表于 2011-12-20 09:14
用ACCESS导入CSV文件,命名为:数据库.accdb,数据库跟excel放在同一文件夹内

excel 用SQL来查询 (我用下 ...

谢谢。
现在我遇到了这样一个问题。
就是csv数据在access里导入以后,第一列数据都被强制转换成了日期格式,显示为:
#数字!

这是什么问题呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-20 10:00 | 显示全部楼层
dudebad 发表于 2011-12-20 09:14
用ACCESS导入CSV文件,命名为:数据库.accdb,数据库跟excel放在同一文件夹内

excel 用SQL来查询 (我用下 ...

谢谢。
现在我遇到了这样一个问题。
就是csv数据在access里导入以后,第一列数据都被强制转换成了日期格式,显示为:
#数字!

这是什么问题呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-20 10:00 | 显示全部楼层
dudebad 发表于 2011-12-20 09:14
用ACCESS导入CSV文件,命名为:数据库.accdb,数据库跟excel放在同一文件夹内

excel 用SQL来查询 (我用下 ...

谢谢。
现在我遇到了这样一个问题。
就是csv数据在access里导入以后,第一列数据都被强制转换成了日期格式,显示为:
#数字!

这是什么问题呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-20 10:06 | 显示全部楼层
dudebad 发表于 2011-12-20 09:14
用ACCESS导入CSV文件,命名为:数据库.accdb,数据库跟excel放在同一文件夹内

excel 用SQL来查询 (我用下 ...

用access导入csv数据时,第一列的数值被强制转换为日期格式了
显示为:
#数字!

这是什么问题呢?

TA的精华主题

TA的得分主题

发表于 2011-12-20 10:33 | 显示全部楼层
JiuBaiYi 发表于 2011-12-20 10:06
用access导入csv数据时,第一列的数值被强制转换为日期格式了
显示为:
#数字!

请提供模拟附件

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-20 10:43 | 显示全部楼层
dudebad 发表于 2011-12-20 10:33
请提供模拟附件

实验数据如附件所示: test.rar (173.26 KB, 下载次数: 31)

TA的精华主题

TA的得分主题

发表于 2011-12-20 11:06 | 显示全部楼层
JiuBaiYi 发表于 2011-12-20 10:43
实验数据如附件所示:

注意,要加上第一行的标题字段
test(1).rar (108.98 KB, 下载次数: 28)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-12-20 11:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dudebad 发表于 2011-12-20 11:06
注意,要加上第一行的标题字段

加上第一行的标题字段,第一行是显示了正确的数字。但是第二行还是显示为
#数字!

TA的精华主题

TA的得分主题

发表于 2011-12-20 16:27 | 显示全部楼层
本帖最后由 灰袍法师 于 2011-12-20 16:52 编辑
dudebad 发表于 2011-12-20 09:14
用ACCESS导入CSV文件,命名为:数据库.accdb,数据库跟excel放在同一文件夹内

excel 用SQL来查询 (我用下 ...

你没有把导入的时间也算在里面,当然是两秒了。。。
加上导入时间,在我的电脑导入楼主格式的161MB数据,要88秒。。。。。。
本来就是读取文件和转换格式最慢,真正的数据计算时间是可以忽略不计的。

如果楼主要多次运行,那么导入数据库比较好(话说回来,楼主的数据是不是本身就数据库导出的吖。。。。。。)
如果对每个新的文件都是只运行一次,那么直接用VBA也方便。

楼主可以在导入的时候指定数据格式
导入.jpg

TA的精华主题

TA的得分主题

发表于 2011-12-20 18:00 | 显示全部楼层
灰袍法师 发表于 2011-12-20 16:27
你没有把导入的时间也算在里面,当然是两秒了。。。
加上导入时间,在我的电脑导入楼主格式的161MB数据, ...

不一定要导入ACCESS,直接用表格当做数据库
  1. Sub test()
  2. Dim conn As Object, sql$
  3. Set conn = CreateObject("adodb.connection")
  4. conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=yes;';Data Source=" & ThisWorkbook.FullName

  5. sql = "select * from [test$A1:H" & Sheet1.[A65536].End(xlUp).Row & "] where 第1列 between 32 and 36 and 第2列 between 95and 100"

  6. Sheet1.Range("j2").CopyFromRecordset conn.Execute(sql)
  7. conn.Close
  8. Set conn = Nothing
  9. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-24 00:03 , Processed in 0.039346 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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