软件:Excel VBA
遇到的问题
1. 每期资料的表头字段是固定的
2. 每期资料量都不同,所以列数会往下新增或减少
3. 资料都会有表尾总计数
现在是直接用VBA录制动作
1. 用资料筛选,选择表尾的表格颜色,然后整列删除
2. 再解除资料筛选,继续后续的资料整理
但发现这样range还是只会记忆被删除的那一列,而不是依每次筛选出来的表尾。
想请问各位大大,只想取表头跟表尾中间的资料的话可以怎么整理,感谢~~~~~
https://i.imgur.com/5HnAn92.jpg
作者: soyoso (我是耀宗) 2019-02-12 08:34:00
是指要确定表尾的列号吗?(因为问题写到列数会往下新增或减少)如果是的话,range.end、range.find,有连续资料的话,也可配合工作表函数count或counta
不好意思文字太抽象,更新一下图就是每期列1固定,然后列261跟列262都是不要的,所以会筛选颜色再删除
作者: soyoso (我是耀宗) 2019-02-12 09:16:00
希望是取1:260的资料吗,如以连结来看的话a1:j260?其他的如筛选颜色再删除这方面会执行吗?亦或不要执行而要取出a1:j260的资料?
取A2:A260,A2每期都固定,然后A260会往下延伸或是减少列数打错,是J260不是A260,拍谢拍谢!!
作者: soyoso (我是耀宗) 2019-02-12 09:28:00
以连结来看j261和j262方面是不会键入资料吗?如果不会的话以range("a2:j" & [j1048576].end(xlup).row) 可取得或是以range("a2",[j1048576].end(xlup))range.end方面以可以range.find,或以有连续资料的某栏以工作表函数count或counta来计数(有可能需减不计入的列,如表头尾的列数)
表单后续会再就A2:J的中间下公式和插入栏整理分类,所以目标不是删除黄色列,而是为了只取A2到J下公式运算,但每期都J的列数都会变。如果范围这样取是不是会取到不要的黄色列? ("a2:j" & [j1048576].end(xlup).row)谢谢~~
作者: soyoso (我是耀宗) 2019-02-15 08:13:00
这不一定,就要看黄色列的j栏(是否有键入资料,这也是我之前回文所询问的问题),所提供的写法也如回文假设,如果不会的话下的情况所以如果黄色的j栏是有键入资料(这里的资料也保括公式)的话,就改以a:i栏内来判断最后一笔有值的列号,但条件如下1.需黄色列第一列上方是有资料,2.黄色列该栏是没有资料的以连结来看a:i第一列上方有资料,看起来是除了b和i没有而2该栏没有资料来看为d和e。就调整成这二个条件符合下的栏来取得最后一笔有值的列号实际也可能都没有符合的条件,那就改以判断任一栏最后一笔有值的列号(有可能包含黄色列,且有资料的条件也固定都会出现在黄色列内),该列号减出现于黄色列内的笔数