作者pipipipig (duck)
看板Office
标题[文件] VBA录制 只取表身做资料整理
时间Tue Feb 12 08:26:51 2019
软体:Excel VBA
遇到的问题
1. 每期资料的表头栏位是固定的
2. 每期资料量都不同,所以列数会往下新增或减少
3. 资料都会有表尾总计数
现在是直接用VBA录制动作
1. 用资料筛选,选择表尾的表格颜色,然後整列删除
2. 再解除资料筛选,继续後续的资料整理
但发现这样range还是只会记忆被删除的那一列,而不是依每次筛选出来的表尾。
想请问各位大大,只想取表头跟表尾中间的资料的话可以怎麽整理,感谢~~~~~
https://i.imgur.com/5HnAn92.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.125.20
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.125.20
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1549931214.A.18D.html
1F:→ soyoso: 是指要确定表尾的列号吗?(因为问题写到列数会往下新增或02/12 08:34
2F:→ soyoso: 减少)02/12 08:35
3F:→ soyoso: 如果是的话,range.end、range.find,有连续资料的话,也02/12 08:35
4F:→ soyoso: 可配合工作表函数count或counta02/12 08:36
※ 编辑: pipipipig (42.73.196.130), 02/12/2019 09:07:47
5F:→ pipipipig: 不好意思文字太抽象,更新一下图 02/12 09:10
6F:→ pipipipig: 就是每期列1固定,然後列261跟列262都是不要的,所以 02/12 09:12
7F:→ pipipipig: 会筛选颜色再删除 02/12 09:12
8F:→ soyoso: 希望是取1:260的资料吗,如以连结来看的话a1:j260? 02/12 09:16
9F:→ soyoso: 其他的如筛选颜色再删除这方面会执行吗?亦或不要执行而要 02/12 09:18
10F:→ soyoso: 取出a1:j260的资料? 02/12 09:18
11F:→ pipipipig: 取A2:A260,A2每期都固定,然後A260会往下延伸或是减 02/12 09:19
12F:→ pipipipig: 少列数 02/12 09:19
13F:→ pipipipig: 打错,是J260不是A260,拍谢拍谢!! 02/12 09:20
14F:→ soyoso: 以连结来看j261和j262方面是不会键入资料吗? 02/12 09:28
15F:→ soyoso: 如果不会的话 02/12 09:29
16F:→ soyoso: 以range("a2:j" & [j1048576].end(xlup).row) 可取得 02/12 09:29
17F:→ soyoso: 或是以range("a2",[j1048576].end(xlup)) 02/12 09:31
18F:→ soyoso: range.end方面以可以range.find,或以有连续资料的某栏以 02/12 09:37
19F:→ soyoso: 工作表函数count或counta来计数(有可能需减不计入的列,如 02/12 09:38
20F:→ soyoso: 表头尾的列数) 02/12 09:39
21F:→ pipipipig: 表单後续会再就A2:J的中间下公式和插入栏整理分类,所 02/15 08:01
22F:→ pipipipig: 以目标不是删除黄色列,而是为了只取A2到J下公式运算 02/15 08:01
23F:→ pipipipig: ,但每期都J的列数都会变。如果范围这样取是不是会取 02/15 08:01
24F:→ pipipipig: 到不要的黄色列? ("a2:j" & [j1048576].end(xlup).row 02/15 08:01
25F:→ pipipipig: ) 02/15 08:01
26F:→ pipipipig: 谢谢~~ 02/15 08:02
27F:→ soyoso: 这不一定,就要看黄色列的j栏(是否有键入资料,这也是我之 02/15 08:13
28F:→ soyoso: 前回文所询问的问题),所提供的写法也如回文假设,如果不 02/15 08:14
29F:→ soyoso: 会的话下的情况 02/15 08:15
30F:→ soyoso: 所以如果黄色的j栏是有键入资料(这里的资料也保括公式)的 02/15 08:17
31F:→ soyoso: 话,就改以a:i栏内来判断最後一笔有值的列号,但条件如下 02/15 08:18
32F:→ soyoso: 1.需黄色列第一列上方是有资料,2.黄色列该栏是没有资料的 02/15 08:20
33F:→ soyoso: 以连结来看a:i第一列上方有资料,看起来是除了b和i没有 02/15 08:22
34F:→ soyoso: 而2该栏没有资料来看为d和e。就调整成这二个条件符合下的 02/15 08:23
35F:→ soyoso: 栏来取得最後一笔有值的列号 02/15 08:24
36F:→ soyoso: 实际也可能都没有符合的条件,那就改以判断任一栏最後一笔 02/15 08:26
37F:→ soyoso: 有值的列号(有可能包含黄色列,且有资料的条件也固定都会 02/15 08:27
38F:→ soyoso: 出现在黄色列内),该列号减出现於黄色列内的笔数 02/15 08:27
39F:→ pipipipig: 修改後成功取到值了!!!谢谢s大!! 02/18 20:57