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

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

2019-04
30

写出我的VBA

By xrspook @ 9:39:13 归类于:烂日记

自己有多努力自己知道,别人有没有感觉到无所谓。那就像减肥一样,一开始的时候,身体些许的变化只有自己明白,比如整个人不再那么嗜睡了,身体的围度在减少,主要的体现是衣服或者裤子的哪个部分松了,又或者是爬楼梯或者做其它运动的时候不再那么容易累。别人看到你的改变大概是在当变化接近5公斤的时候,如果你根本没有那么大的基数或许你要控制的目标体重根本和开始的那个体重相差不到5公斤。所以说自己的状况只有自己明白。对我来说,当我弯腰坐着的时候不再感觉到肚子上折叠了肉肉,我就知道自己的减重有成效了,另外一个方面有可能是大腿或者屁股的某个部位不再那么紧绷。相对于几年前,我觉得现在控制体重比当年难多了。我也不记得从前大腿或者臀部围度发生变化是开始持续运动多久以后的事,反正现在即便我觉得自己已经在努力,但那两个地方还是坚决不改。不改就不改,反正只要身体总体的感觉在向好的那方面发展,肥肉堆在那些地方其实也无伤大雅。我不是那种靠脸吃饭的人,身材只要不要太过分我觉得一点问题都没有,但如果那些地方已经堆积了很多,甚至于蔓延到全身的其它部位,发展到一定程度的时候,我会觉得无法接受。接着我会开始下一轮的稍微克制,但是克制一段时间以后,我肯定又重新开始过放纵的过日子。

昨天下午上班的时候被告知今天检查组不来了。其实总的来说,我准备的东西已经足够了,没有什么可以再准备的,我只是等那帮人过来,而在那之前总会有各种的紧张。知道他们这个月底不来,五一节以后再来的消息以后,我彻底丢下了那个紧张的包袱。过去好长时间我都没有主动去写符合我需要的VBA程序。之所以要学Excel VBA,就是因为有些功能是数据透视表做不到某些个性化的需求。在那个明细数据与汇总数据混乱的表格里,难以用简单的方法把该合并的合并出来,即便我用的已经是最新版本的Office 365。虽然在数据提取及组合方面,最新版本的Office已经比前代强了很多。昨天我用了大概一个下午两个多小时的时间写出了我想要的那个效果。虽然那个东西的运行效果在加了某些句子以后慢得让人有点难以接受,于是我又用了好几个小时的时间对程序进行了优化。到晚上8点多的时候我终于把东西整了出来。最终的成品我挺满意,因为一个有900多条需组合的数据的100个工作表的工作簿里,用我的VBA程序提取汇总耗时不会超过两秒。在我优化之前,即便只有80多条需要合并的数据数据也需要起码10秒的时间。以前写C语言程序的时候,我从来没有感觉到用不同的表达方式效果会差那么远。大概因为从前我处理的数据没有现在多,而且在C语言里。除了单个数据就是数组,但显然我在Excel里使用VBA,我并没有使用数组,而是纯粹在工作表的单元格之间不断循环。有些东西我一开始觉得是不是一句话说完,不搞那么多个变量会好一点。但后来发现变量多完全不是问题,如果你把一个变量以很复杂的句式表达出来程序会很慢,一开始的时候我犯的就是那个错误。搞那么复杂的句式不如再建一个变量,以走直路的方式表达出来。

做同一件事为什么有些人需要不断地通过加班完成,而有些人却可以潇洒地准时下班,甚至在上班的时候也在摸鱼。工作效率高低决定了这一切。而我觉得提高工作效率这种事你需要反复地思考和实施,直到进化出一种最适合你的方式。别人曾经把精力投放在思考和实施上面,但你却从来没有在那些方面努力过,于是某些加班纯粹是活该。

2019-04
12

让页面方向重回不智能

By xrspook @ 10:39:15 归类于:烂日记

我已经很久都不写教程这个东西,因为好长一段时间我都没有试过有那种非得我这样做不可能念头了。过去了很多年都只是我在找别人的教程帮我解决问题。还记得刚开始上网的那个时候,我写过不少教程,直到大学毕业之前,我也喜欢写教程。哪怕是一些很琐碎的事我也会写,首先是因为这样做可以让自己加深记忆,当自己以后再遇到这个问题的时候就可以及时找到恰当的方法。这除了可以帮助我自己以外,也能帮助别人。既然别人的教程帮了我很大忙,我希望我也可以为别人做同样的事。之所以慢慢地我不做这种事了,是因为我仿佛陷入了泥潭,觉得教程必须写得图文并茂,而且有一定的意义。这样的压力实在太大,而且我也没在那个上面放那么多的时间和精力,于是我就没干了。

但是昨天我又写了一个教程,其实也说不上是一个教程,但是是类似的东西,那是完全通过我自己的经验总结出来的。在我能搜索到的范围之内,我没有见过有中文的类似的东西。至于英文的版本,也是在我把自己的方法写出来以后,努力折腾才看到了别人曾经也提出了类似的方法。除了我们的解决方案以外,其它的都不怎么可执行,又或者说必须依靠软件升级的支持才能做到,这显然不现实,因为不是每个打印机制造商都意识到这个问题,而且愿意给用户开辟一个通道免去用户的这种烦恼。

Excel里面数据透视表绝对引用和相对引用的问题从2013版开始存在,到2016版刚出现的时候问题依旧。2016版更新到某个版本以后这个问题才算解决了,所以在2019和Office365里面数据透视表的绝对引用相对引用不再是个问题。但是这两天我遇到的那个自定义页面大小以及页面方向的问题却从2007版开始一直延续到现在到Office 365,仍然没有确切的解决方案,也正是因为这样,所以我得自己纠结一个方法出来。这是个横跨了12年的问题而之所以这么久都没有解决,首先是因为他们觉得这不是问题,这是方便、这是智能化。之所以有这个问题,也正是因为他们觉得应该给用户一个智能的判断,但却没有考虑到原来有那么一些小众用户需要用这个不智能的方式。其实这种事很普遍,尤其是对滚动式进纸的针式打印机。只要进行连续多联的打印必然会遇到这种问题。遭殃的有提货单、收据、发票,各种快递单等等。只要打印的这些东西用的不是系统,而是用Office的邮件合并进行套打必然会遇到这个问题。之所以这个问题一直都不被重视,大概是因为需要这样用的人可能非常少。对于数据量处理非常大的企业来说,他们肯定愿意给钱去搞系统,而对于数据量不怎么大的小单位小作坊,或许他们的知识层面还没到那种去研究怎么可以让工作更便捷、怎么去提高自己的工作能力,比如说学习使用Office的一些比较冷门的功能。但偏偏有我这种早已把这个功能当做是我随身工具包的人。对我来说要么避开这个问题,要不么直接面对找出解决办法,否则我只能在电脑上让2003和365并存。

2007有这个问题,到Office 365(2019年4月)仍然有这个问题,简直让人无比醉!!!2003可以设置宽大于高,且打印方向为纵向,同样是宽大于高,365无论你怎么设置,只要按确定以后必然会自动把你的打印方向默认为横向。对于针式打印机,尤其使用滚动进纸模式连续套打多张的时候,打印方向必须选择纵向(比如EPSON的LQ-635K),无论你怎么折腾纸张尺寸和打印方向,365都无法实现2003能做到的正常效果。于是呢,我做了以下的事:

把2003的doc和365的docx改后缀为zip,解压对比里面的文件后发现,在“根目录\word”下有个document.xml文件。文件末端,365生成的文件比2003的多了个“w:orient=”landscape””,有这条,打印方向就是横向,没有就是纵向。把这一条手动删除并保存后,把解压包里的文件重新压成zip并重命名为docx,365的文件终于能实现2003文件的纸张宽度大于高度,但打印方向为纵向,滚动试进纸的打印机得救了!但这里有一点非常重要:手动删除“w:orient=”landscape””以后就不要再到Word的“页面设置”里修改任何参数,只要一修改一按确认,365的“w:orient=”landscape””又会重新自动生成。如果要对“页面设置”的参数进行调整,比如纸张选择、页边距设置等等,一律要在手动删除“w:orient=”landscape””之前。

折腾一大轮才让365实现2003不费吹灰之力就能做到的事,让人心累,还不如同时装个2003和365呢~~~ 插一句,新版本的WPS,比如WPS 2019同样存在365的bug。

当别人不曾试过努力思考就用询问他人的方式找答案的时候,我很瞧不起他们。因为我自己是那种非常喜欢通过自己的琢磨努力得出一个方法的人。研究出解决某个问题的第一个靠谱方法对我来说很有成就感,帮助自己同时也方便别人的感觉很爽。

2019-04
2

重复劳动

By xrspook @ 10:56:20 归类于:烂日记

上周六在做某个账本之前我已经先问了总公司的负责人到底我这样做合不合理,她回复我没问题,然后我才开始干。但昨天傍晚的时候她又突然跟我说,因为去年其它单位都是那么干的,所以我也要把那改过来。到底什么是对什么是错,真的不知道。按照条款上的约定,我的做法没问题,而且为了以防万一,我还在做之前要先咨询了一下,但最终还是不能避免要把所有账本都重新再做一遍。既然条款上是这么写的,为什么不按照那个执行反而对呢?如果条款有问题,为什么他们不事先修改条款,然后告诉大家,而是到有人遇到了状况的时候才一个一个的告知该怎么去处理呢?显然这样费时费力。管理的辛苦,被管理的也很辛苦。但幸好上周六做那个账本的时候我没有把旧的账本先删除掉,我只是在那个账本的文件名上做了个标记,然后剪切到别的地方,所以昨天我还可以把旧的那个拿回来,虽然还是有些地方要修改,虽然重新打印签字免不了,但起码我不需要从零开始。我不知道为什么那天我把那个账本先放一边而不是直接删掉,大概是因为以前的经验告诉我,或许那些东西留着还会有用,但我并不是把所有旧账本都留下来,我只是把最复杂的那个留下来,因为做那个东西实在耗费了我好些精力,我舍不得直接删除掉。

数据本身没问题,是数据的表达方式不同了而已。我一直觉得我们把所有精力都耗费在这个上面是浪费人生。每次遇到检查我都会有很深的觉悟,我必须学会Excel的VBA。那么我就可以把自己从这些毫无意义的格式修改上拯救出来。既然那些东西J金蝶通过编程可以实现,我也可以自己做到。但话说回来,这么大一个单位为什么他们就没想过买一个有统计功能的金蝶模块挂上在现在的系统上呢?归根到底一定程度我觉得是因为做统计工作的人其实基本上都不是会计或者经济学出身的。我们本来做其它事的,接着莫名其妙就被叫过来做这些了。在我们的字典和我们的知识领域里不知道如何把金蝶发挥到极致,当然也就没有那个升级的强烈要求。情况就像我的同事对用什么Office软件无所谓,WPS也好、随便一个什么版本的Office也好,反正能用就行。当遇到一些应该用技巧和用公式能解决的东西他们一律手动输入,所以用什么软件对他们来说毫无区别,因为那不过是一个记录数据的地方而已,跟在一张白纸上记录毫无区别。既然他们没想过要把软件的功能用起来,他们当然也就对软件没有要求了。在统计账务处理和管理方面,我觉得我们单位遇到的也是这个问题,如果有一个精通金蝶的人过来指点一下大概我们的工作会非常不一样。有可能是工作流程简化了很多,也非常有可能是一些我们向来忽略掉的东西会被重新重视起来。但显然如果找一个卖金蝶的过来他肯定会给你推荐一大堆你根本用不着的东西,又或者其实他们也不熟悉他们的功能,所以只能大概的给你瞎掰。好不好用这种事只有用过,而且是经常用的人才有发言权。

在账务管理方面,其实很多软件已经非常成熟了,无论是哪个,现在的问题是做这些账务的人根本不懂得基本原理也没见识过软件,当然也就不会想到要去用。

2018-12
8

流氓劫持

By xrspook @ 22:46:59 归类于:烂日记

昨天晚上还好好的,今天早上突然发现所有浏览器都被劫持到一个导航网站,与其说那是一个导航网站,不如说那纯粹是一个广告页面,因为上面正在播的或者飘的东西都肯定跟利益有关,但那些东西又不像普通网站上的那些广告那样标明是广告。那个网站的模样让你第一眼看上去,觉得那是hao123,但是,如果你用对付hao123的方法去应对,是毫无结果的。无论是修改浏览器的快捷方式,还是在注册表里搜索,又或者到某些很深层的文件夹去修改,都没办法让浏览器恢复正常。那种不正常都只会发生在开启浏览器的那一下,往后的网页浏览是不会发现其他问题的。

到底弹出来的那个网站是什么东西呢?把所有方法做了一遍,但都无效的时候,我开始研究那个网站。发现那还不只是一个网站那么简单,那是一个网站框架,虽然是挂在某个网址下面,但实际上里面的内容却指向别的地方。那个框架里面的东西,还用了cdn加速。这就很高端了,因为如果仅仅是一个导航网站,里面只有链接和几张图,根本用不着cdn加速这种事。如果用cdn加速,就代表他在不同地方都部署了服务器,而且确保了你即便阻挡了这个图片,下一次它加载出来的东西就会是另外一个服务器出来的,你防不胜防。什么360杀毒,杀木马,或者360卫士上面的各种主页保护都没办法搞定这个东西,因为我觉得这个根本就不是篡改主页,而是直接默认让你在启动浏览器的时候加载一些东西,至于那到底是什么,显然到现在为止我都不知道。如果知道那是什么,我当然就可以找办法去解决。那是DNS劫持,但实际上又不是,因为你能打开网站的,你也能正常浏览,就是一开始的时候有一些莫名其妙的东西弹出来。那不会在你去正常网站的时候弹错误的给你,所以这也算不上是HTTP劫持。这到底是什么呢?搞了一大圈,没办法之后我去找网友,他几乎马上断定这是运营商搞的鬼,是中国电信搞的鬼,华为新研究出来的东西。

很久很久以前一开始拨号上网的时候,我们经常遇到这种链接上就给你个满屏飞的广告。又或者在浏览网页过程中突然飞出一个广告,但当时你一眼就能认出那是电信的东西,习以为常。现在打开浏览器,他们弹的那些东西你完全看不出是电信的影子,但也就只能在他们的那个层面才能做出这么神奇的事情,因为我把电脑已经检查了好几遍,完全没有发现任何问题。神奇的是他们的那个东西为什么全部都指向搜狗呢?之所以这样,是因为搜狗给了华为钱,华为在做硬件的时候直接植入了电信的系统,所以华为又给了钱电信,最后电信就在用户身上投放这些东西?!好恶心的利益链条。这些东西本不该存在,我们应该去投诉,我们应该去工信部把他们全部都告一遍,但显然,做这种事实在太花时间和精力了,一般的公民不会这么做,但如果人人都不这么做,他们只会更嚣张。

在搞了一大轮都没成功以后,最后我选择了把那个网站host掉,然后当我删除了浏览器的缓存以后,终于耳根清净了,那个网站再也不会弹出东西,我只会显示网页无法打开。我宁愿什么都看不到,也不想看他们的广告。我做的这一步很简单,但是一般的人通常不做,也不会做。

我知道我只是在掩耳盗铃自欺欺人。

Page 1 of 8612345678»...Last »
COPYRIGHT @ 我的天 | Theme by xrspook | Power by WordPress | Valid XHTML 1.1 and CSS 3 Go to top