Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 11209|回复: 17

[已解决]不打开文件读取其他Excel文件的数据

[复制链接]
发表于 2016-5-2 19:23 | 显示全部楼层 |阅读模式
本帖最后由 26827557 于 2016-5-6 12:05 编辑

老师们好!借助网页的“不打开文件读取其他Excel文件的数据”这个例子,怎么把指定的100行用变量来求呢?
我用以下这句,没有实现出来,大家来一起试试啊
r =Sheets("DataSource").Range("A65536").End(xlUp).row  '最后一行行数

http://club.excelhome.net/thread-492148-2-1.html
最佳答案
2016-5-3 13:58
不打开文件读取其他Excel文件的数据.rar (23.54 KB, 下载次数: 211)
1.jpg

不打开文件读取其他Excel文件的数据.zip

23.66 KB, 下载次数: 77

发表于 2016-5-2 20:25 | 显示全部楼层
本帖最后由 七彩屋 于 2016-5-2 20:43 编辑

回复

使用道具 举报

发表于 2016-5-2 20:43 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-5-3 12:26 | 显示全部楼层
砂海 发表于 2016-5-2 20:43
sheets()的 父Workbooks()没指定

怎么指定,老师,你能下载来帮试试吗?
回复

使用道具 举报

 楼主| 发表于 2016-5-3 12:28 | 显示全部楼层
七彩屋 发表于 2016-5-2 20:25

你能下载来帮我试试吗
回复

使用道具 举报

发表于 2016-5-3 13:57 | 显示全部楼层
sFullName = Application.GetOpenFilename '读取数据源文件路径和名称
If sFullName = False Then Exit Sub    '如果放弃选择文件,退出程序
Set qcw = GetObject(sFullName)
rr = qcw.Sheets("DataSource").Range("B65536").End(xlUp).Row

Range("IV2") = sFullName
Range("IV3") = sFullName
Range("IV4") = sFullName
Range("IV3").Replace what:="*\", replacement:="" '利用通配符*替换路径为空,提取文件名称
Range("IV4").Replace what:=Range("IV3"), replacement:=""  '替换上面提出的文件名称为空,提取文件路径
sFile = Range("IV3").Value   '文件名称赋值
sPath = Range("IV4").Value   '文件路径赋值
Range("IV2:IV4").ClearContents
sSheet = "DataSource"   '指定工作表,即在数据源文件中要读取数据的Sheet的名称
On Error Resume Next
For r = 1 To rr   '100行数据
回复

使用道具 举报

发表于 2016-5-3 13:58 | 显示全部楼层    本楼为最佳答案   
不打开文件读取其他Excel文件的数据.rar (23.54 KB, 下载次数: 211)
回复

使用道具 举报

 楼主| 发表于 2016-5-3 21:14 | 显示全部楼层
本帖最后由 26827557 于 2016-5-3 21:18 编辑
七彩屋 发表于 2016-5-3 13:57
sFullName = Application.GetOpenFilename '读取数据源文件路径和名称
If sFullName = False Then Exit Su ...

老师,你好!非常感谢你:
但是还有些问题:
1.例如,选择的源文件里假设不存在“DataSource”这个工作表,弹出来了“下标越界”,能否加一条判断语句呢?
2.另外能否在选择源文件时,能否过滤文件格式,只可以看到".xls"类型的文件呢?


回复

使用道具 举报

发表于 2016-5-4 10:42 | 显示全部楼层
第一个问题加一判断
If sFullName = False Then Exit Sub    '如果放弃选择文件,退出程序
Set qcw = GetObject(sFullName)
On Error Resume Next
  If qcw.Worksheets("DataSource") Is Nothing Then
     MsgBox "不存在DataSource工作表"
    Exit Sub
  Else

......

end if
回复

使用道具 举报

发表于 2016-5-4 10:52 | 显示全部楼层
第二个问题

Filt = "xls文档 (*.xls),*.xls,"
  FilterIndex = 1
    sFullName = Application.GetOpenFilename(FileFilter:=Filt, FilterIndex:=FilterIndex, Title:=Title)
       If sFullName = False Then Exit Sub    '如果放弃选择文件,退出程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-20 12:32 , Processed in 0.322458 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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