Excel精英培训网

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

[已解决]同路径外部XLS文档有选择导入,谢谢雪舞子老师

[复制链接]
发表于 2016-3-7 09:51 | 显示全部楼层 |阅读模式
本帖最后由 lhj323323 于 2016-3-9 23:30 编辑

老师
我想把同路径的XLS文档的指定2个工作表(该文档有多个工作表),有条件选择性分别导入到到另一个XLS文档的指定的2个工作表中。

请详见附件,内有图示,谢谢。



最佳答案
2016-3-8 11:23
  1. Private Sub CommandButton1_Click()
  2.     Dim tb, wb, yArr, mArr, i&, x&
  3.     Set tb = ThisWorkbook
  4.     x = ComboBox1.ListIndex
  5.     Unload Me
  6.     yArr = Range(Cells(4, 3 + x), Cells(5, 3 + x))
  7.     mArr = Range("b4:b5")
  8.     Application.ScreenUpdating = False
  9.     Set wb = Workbooks.Open(tb.Path & "" & "数据源.xls")
  10.     With wb
  11.         For i = 1 To 2
  12.             .Sheets(yArr(i, 1)).UsedRange.Copy tb.Sheets(mArr(i, 1)).UsedRange
  13.         Next
  14.         .Close True
  15.     End With
  16.     Application.ScreenUpdating = True
  17.     MsgBox "导入完毕!"
  18. End Sub
复制代码
选择导入.rar (28.08 KB, 下载次数: 18)

新建文件夹.rar

13.17 KB, 下载次数: 7

发表于 2016-3-8 11:23 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub CommandButton1_Click()
  2.     Dim tb, wb, yArr, mArr, i&, x&
  3.     Set tb = ThisWorkbook
  4.     x = ComboBox1.ListIndex
  5.     Unload Me
  6.     yArr = Range(Cells(4, 3 + x), Cells(5, 3 + x))
  7.     mArr = Range("b4:b5")
  8.     Application.ScreenUpdating = False
  9.     Set wb = Workbooks.Open(tb.Path & "" & "数据源.xls")
  10.     With wb
  11.         For i = 1 To 2
  12.             .Sheets(yArr(i, 1)).UsedRange.Copy tb.Sheets(mArr(i, 1)).UsedRange
  13.         Next
  14.         .Close True
  15.     End With
  16.     Application.ScreenUpdating = True
  17.     MsgBox "导入完毕!"
  18. End Sub
复制代码
选择导入.rar (28.08 KB, 下载次数: 18)
回复

使用道具 举报

 楼主| 发表于 2016-3-9 23:29 | 显示全部楼层
雪舞子 发表于 2016-3-8 11:23

谢谢雪舞子老师的帮助!
回复

使用道具 举报

 楼主| 发表于 2016-3-10 08:19 | 显示全部楼层
本帖最后由 lhj323323 于 2016-3-10 08:22 编辑
雪舞子 发表于 2016-3-8 11:23

雪舞子老师:

在实际工作中
模板.XLS里的如下内容是不存在的。
同时,数据源里的6个数据源工作表的相对顺序也不是固定的,只有工作表名称是固定的。
模板.xls里的ID_1和ID_2的相对顺序也不是固定的,只有工作表名称是固定的。

能麻烦您再帮忙修改一下吗?先谢谢了

快照3.png
回复

使用道具 举报

发表于 2016-3-10 08:36 | 显示全部楼层
lhj323323 发表于 2016-3-10 08:19
雪舞子老师:

在实际工作中

代码只需要选择组,
然后会根据[]b4:e5]内容自动选择导入,
请说具体问题,
需要修改哪里?
回复

使用道具 举报

 楼主| 发表于 2016-3-10 17:56 | 显示全部楼层
雪舞子 发表于 2016-3-10 08:36
代码只需要选择组,
然后会根据[]b4:e5]内容自动选择导入,
请说具体问题,

就是我在4楼所抓的图中的那些内容,在实际操作中是不存在的。

而雪舞子老师所写的语句能正常运行的前提
正是这些内容要存在。
回复

使用道具 举报

发表于 2016-3-11 07:29 | 显示全部楼层
lhj323323 发表于 2016-3-10 17:56
就是我在4楼所抓的图中的那些内容,在实际操作中是不存在的。

而雪舞子老师所写的语句能正常运行的前提 ...

不去抓取,如何判定条件有选择导入呢?
回复

使用道具 举报

 楼主| 发表于 2016-3-11 08:34 | 显示全部楼层
本帖最后由 lhj323323 于 2016-3-11 08:37 编辑
雪舞子 发表于 2016-3-11 07:29
不去抓取,如何判定条件有选择导入呢?

我们所说的【抓取】完全是两回事:
我所说的仅指抓取下面的图片,
你所说的抓取是指语句抓取某个单元格区域。

我的意思是获得对应关系的方式不是通过抓取,而是内置到语句中

我在本贴上传的附件中的
快照3.png
只是为了更直观地表述我想达到的效果(它只是表明一种对应关系),在实际操作中,上图是不存在的
如果上图都不存在,那么,抓取这种方法就行不通。


回复

使用道具 举报

发表于 2016-3-11 13:19 | 显示全部楼层
lhj323323 发表于 2016-3-11 08:34
我们所说的【抓取】完全是两回事:
我所说的仅指抓取下面的图片,
你所说的抓取是指语句抓取某个单元格 ...

工作表名称内置到代码中,
不依赖工作表,
这样?
选择导入.rar (23.18 KB, 下载次数: 11)
回复

使用道具 举报

 楼主| 发表于 2016-3-14 23:38 | 显示全部楼层
雪舞子 发表于 2016-3-11 13:19
工作表名称内置到代码中,
不依赖工作表,
这样?

这盘对了,谢谢您!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 22:37 , Processed in 1.067980 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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