0123456789
VBA如何实现从Excel指定区域导入数据?
0123456789
从Excel指定区域导入数据
比如,D:\数据源.xls的sheet1中的A5:G100
0123456789
部分导入,只导入指定区域,不知道怎么搞了
滋阴壮阳冬瓜汤
无非就是后面指定表名和range区域
0123456789
就是不知道怎么搞嘛
打开Excel,遍历指定区域单元格,逐个写入,效率太低
5千多行记录,需要2分钟
王子
select * from [sheet1$A5:g100] in "文件路径"
小宝
用TransferSpreadsheet 方法也可以
王子
嗯,我一直用SQL导的 0123456789
@小宝 用TransferSpreadsheet方法怎么搞,导入指定区域
0123456789
导入指定区域,只能用SQL语句了?
好吧
谢谢
小宝
或者用Excel Application 对象
0123456789
Excel Application,打开Excel,遍历指定区域单元格,逐个写入,是不是?
小宝
clipboard,不还要先打开Excel Application
0123456789
【博士】小宝(377922812) 10:56:04
sql有一点陷阱
怎么说呢
哦
王子
那就打开后,改格式再导 0123456789
有些地方,本应是空的,却来了个" "
0123456789
看起来是数字,实际是文本,这种情况是吗
王子
比如前几行是数字,后面有文本
它认为这列是数字
文本就导不进来了
王子
这种情况,改了数字格式,然后分列一下把整列转成文本就可以解决的
主席
导入excel很麻烦,尤其是用了数字外键的表格。
导入中又容易出错,大量的数据,其中有一个单元格出错,都可能导致导入失败,却又不知道原因在哪里。
0123456789
现在我是遍历区域,逐个检查处理后写入
主席
导入一直没很理想的方案
遍历写入。就是速度慢
尤其是远程写入时,很不理想
主席
导入指定单元区域时,更容易出错。里面可能有合并单元格
王子
打开,选取所需要的列,转数字格式,另存,然后导
滋阴壮阳冬瓜汤
因为office描述数据是有统一格式的,所以写入clipboard,再读出,比数组快。
滋阴壮阳冬瓜汤
而且是一次性整块复制,肯定比遍历要快
滋阴壮阳冬瓜汤
肯定会限制,
数组本身也是有容量限制,而不是无限的
滋阴壮阳冬瓜汤
数组必须是连续的内存。事实上很多时候,要分配大块的连续内存,不容易。