2019-05
1

继续折腾吧

By xrspook @ 11:27:21 归类于: 烂日记

软件设计出来唯有在使用的时候你才能体现出它的价值。昨天和今天我把自己写的两个VBA用了好多遍,感觉真的是爽歪了,但有些东西只有当你用的时候你才会明白到某些手续的必要性。

比如我写的第1个VBA,那是用来套打的,可以打一个工作表里面的指定行。一开始的时候我的思路是把要打的表都复制到有保存VBA的工作簿里,当时打印结果出来的时候我傻眼了。因为页边距的问题,所以打歪了。打了第1页以后,我就已经意识到这个问题,于是我修改了有VBA代码的工作簿,但即便这样,从其它地方复制过去的工作簿还是不以我理想的方式出现。所以最终我把需要打印的工作簿复制到一个别的地方,文件重命名,然后同时打开那个工作簿以及含有VBA代码的另外一个工作簿。在需要打印的工作簿下快捷键调用另外一个工作簿里的VBA代码。这样的好处是我不需要把VBA代码到处复制,只要我同时打开两个工作簿,我就能实现这个功能。一开始我是不知道的,虽然之前我已经看到过网上有人说可以这么做,这样做的好处就是不需要到处复制VBA代码,因为在Excel里面,2007以上版本里最普通的xlsx是无法保存宏代码的,如果要保存宏代码就必须使用xlsm,当然可能如果你把它降级为2003的版本就可以在里面保存代码。显然最普通的工作簿里面不允许你默认打开或者保存使用宏代码能提高了文件的安全性。自己用的宏代码放在一个自己的文件里,需要在别的文件调用的时候同时打开工作簿,这其实也很方便。自己的工作簿设置的宏快捷键在其它工作簿也一样可以用这很爽。这些东西在我写代码的时候我没有想考虑过。因为我只是个新手,不可能一开始就那么周全。

我写的第2个VBA是用来汇总数据的。理论上我还需要添加一个筛选的功能。这样的好处是每次我不需要把每个工作表里面的所有内容都复制到大表里,而是先进行筛选,然后再选择性地复制过去。这可以减小文件的体积以及代码运行的速度,但另一方面,其实筛选也是需要时间的,是全部东西拷贝快一点,还是先筛选再拷贝快一点呢?对我来说,因为我的数据不算太多,所以目标以外的东西我完全可以视而不见,但是如果我把这条代码给别人用的话,或许先进行筛选然后再复制会更合理一些。设定筛选会让我落入另外一些烦恼,筛选范围是个问题。最简单的当然是某个指令数字的筛选,靠谱一点的是某个范围的筛选,但某个范围又分为了连续以及间断。显然要全部满足这些,从逻辑上我还没想通。在非大牌软件里同时满足这几种东西的貌似我还没见过,所以我没想通可能是因为要实现这些有难度,但并非不可能。比如在设定打印页面的时候,我就可以用单数字,连续数字或多数字实现我的要求,所以这个功能是可以做到的,只是我还没想到应该如何实施。

折腾是一个没完没了的过程,但我会乐在其中。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress