Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: switchfoot

求助自动查找对应sheet进行数据筛选

[复制链接]
发表于 2020-6-3 14:21 | 显示全部楼层
switchfoot 发表于 2020-6-3 14:11
Sub TEST()
Set WB = Workbooks("表二")
For I = 1 To Sheets.Count

这个有点说不明白,如果是你写的,你应该有一些代码基础,还不算差,那你就看下面的解释。如果不是就没讨论的价值了:

set wb=worksheets("表二.xls")   '要包括扩展名

通常是打开文件的时候就关键工作簿对象,事后再关联是多此一举:
dim wb as workbook
set wb=workbooks.open(路径+文件名.含扩展名)

你的代码没有打开的动作,我很疑惑;

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2020-6-3 14:25 | 显示全部楼层
hfwufanhf2006 发表于 2020-6-3 14:12
我看不懂你的意思,插入一列和把数据往后移动一列就是等效的,不存在列无法对齐的问题;
我估计你问题的 ...

第一个代码是我想要的,但是表达的结果我是希望用插入列的形式,而不是数据后移的形式。但是第二码我运行不起来。
回复

使用道具 举报

 楼主| 发表于 2020-6-3 14:35 | 显示全部楼层
hfwufanhf2006 发表于 2020-6-3 14:21
这个有点说不明白,如果是你写的,你应该有一些代码基础,还不算差,那你就看下面的解释。如果不是就没讨 ...

是因为我加了open之后,他是自动打开表二,然后自动在表二的每一个sheet中的D列插入一列。而不是在表一中插入,而且也插入之后就结束动作了,没有数据的查找与反馈输出
回复

使用道具 举报

发表于 2020-6-3 15:01 | 显示全部楼层
本帖最后由 hfwufanhf2006 于 2020-6-3 15:03 编辑
switchfoot 发表于 2020-6-3 14:25
第一个代码是我想要的,但是表达的结果我是希望用插入列的形式,而不是数据后移的形式。但是第二码我运行 ...

这就是你这个问题的核心所在:往后移动一列为什么就不行?
很多人都会看不懂。

移动只需要修改参数,有规律的修改参数是比较容易的,与数组和循环比较搭,速度也是最快的,这就是为什么流行用数组替代单元格写数据的原因;
而增加列,你就只能去写单元格数据了,增加列和写单元格都是很慢的操作,除非特别原因,多数人都不会考虑。你这个问题恰恰是别人不理解为什么不能用移动列来替代增加列?

我也不理解为什么你一定坚持插入列,我前面说过,常态化工作起码有一个表是固化的。如果每次操作,两个表都是全新的,你把代码放在哪?每次操作前难道都会去复制一次代码?鉴于此,这个固化的表的格式也应该是固化的,也就不存在新增列的问题。我是说这个打算新增的列在写代码前你就已经准备好了。格式不仅包含数据结构,还有字体、颜色、单元格格式甚至表格线等等,基本上是没人用代码来控制表格样式的,用代码操作格式的人只有新手;

如果是我来做,我还不知道如何下手,因为我考虑的比较多。你这个代码原则上也只能运行一次,因为每运行一次,数据就往后移动一列,我觉得是不能用于实际的。稍不留神多按了一次按钮反而会有大问题;
回复

使用道具 举报

 楼主| 发表于 2020-6-3 15:08 | 显示全部楼层
hfwufanhf2006 发表于 2020-6-3 15:01
这就是你这个问题的核心所在:往后移动一列为什么就不行?
很多人都会看不懂。

嗯,正如您所说,这个代码我只能运用一次,再次运用的话,后面的数据就直接覆盖掉了,这也就是我想做成插入的形式。容错率高一些
回复

使用道具 举报

发表于 2020-6-3 15:15 | 显示全部楼层
switchfoot 发表于 2020-6-3 15:08
嗯,正如您所说,这个代码我只能运用一次,再次运用的话,后面的数据就直接覆盖掉了,这也就是我想做成插 ...

插入也是会遇到同样的问题,每运行一次就新增一列;只有我上面说的才行:你需要事先准备好插入的空白列。然后代码只是用来更新数据。
这种情况不适合全新的表,只能是固化结构的表;


我觉得还是按照我最开始的想法简单些:总是在最后面的空白列写数据就好了。这个列位置是固定的,不管如何运行,在固定的列写数据就没这么多事了,其他的方法都有缺陷,都需要识别,问题是你没有识别的标准,导致无法判断;
回复

使用道具 举报

 楼主| 发表于 2020-6-3 15:27 | 显示全部楼层
hfwufanhf2006 发表于 2020-6-3 15:15
插入也是会遇到同样的问题,每运行一次就新增一列;只有我上面说的才行:你需要事先准备好插入的空白列。 ...

了解了,谢谢您的指导~~~
回复

使用道具 举报

发表于 2020-6-6 10:34 | 显示全部楼层
说半天,不如上传一个附件,在附件上作说明,不就清楚了,这个凭在这里猜,那知道是在说什么。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 23:15 , Processed in 0.316385 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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