2024-04
12

有理有据地做选择

By xrspook @ 8:17:23 归类于: 烂日记

花了大概一天的时间整理出一个用来算库存价值的东西,这里我没有使用VBA,是因为我需要一个更稳的方式。之所以不用VBA,因为已经不需要跨文件加入数据了,所有东西都将在一个文件里解决,而且相对于我得用VBA来干掉的那些,这里的数据相对来说很少,所以这一次我用的是Power Query。我有考虑过要不要用Power Pivot,但最终可能我的数据要以普通表格或者是数据透视表的方式表现出来,通过查询生成的东西最终可能要粘贴到经典的纸质版二维表里,数据透视表在这个情况下就不怎么适合复制粘贴,尤其是当我的数据透视表选项里有合并居中的设定。

在这个做这个的过程中,我有考虑过用Excel自带的公式,但无论是经典的lookup还是新函数xlookup效率都太低了,我不知道是我的电脑太渣,还是的确就那么回事。如果用PQ,在一个低端的Excel里,的确可能效果是很糟糕的,但如果我已经把刷新好的数据发给别人,别人即便刷新不出来,数据也都能看到,不影响,但如果用的是高级的公式,可能那里就一团糟了。还记得多年以前,单位有异地储备玉米,对方把到达码头和已经装船发货地数据发给我,用了sumifs,那个时候我用的office是2003的,那个公式我根本没办法使用,全部显示的都是一团糟,所以我不得不为了打开那个文件看到里面的数据又在电脑上装了个WPS。那次之后,我才努力的尝试用office 2016,之所以会跳过2013,是因为2013在数据透视表方面有无可救药的bug。如果是office 2010,高级公式依然打不开,所以现在当我要实现某个功能的时候,我要考虑什么东西会高效一点,什么东西兼容性好一点。VBA的兼容性很好,但是不是人人都敢打开宏文件。因为在以前,宏文件通常都意味着有木马之类的东西。同时,我设定了宏万一某些时候有问题,别人就会只会弹出错误,的不到结果,也会让人很紧张。

这一次我做的文件,可能后面见到的人会很多,他们可能会用不同的电脑,可能是win10,也可能是win11,有可能是office 2021、2019,又或者是Microsoft 365,也有可能是WPS,到底的WPS里面能不能正常打开并使用PQ我不知道,我估计是不行的,但是能不能看到数据呢?我觉得应该可以,但是无法通过修改某些条件刷新出新的东西。

微软的AI据说很厉害,但关键是在中国和俄罗斯用不了,所以那些都是扯淡。前段时间说Excel通过安装插件可以使用Python,但是那个Python处理是需要把数据送到远端的服务器再传送回来的,我感觉最终会跟微软AI的命运差不多。现在的Power Query相对于我第一次在office 2016里看到的那个已经成熟了很多。还记得我是第一次在自己的笔记本电脑 office 2016家庭版里见到的PQ,那个时候那就是个四不像,中文英文各有一点,翻译都不全。有些功能也不知道是我用得不对还是怎么样,反正就会卡住。对照一些经典案例,的确能得到某些结果,但是我却一直都没有经常使用,因为真的不是每个office都兼容那个东西,而且不同版本的office看到的结果和刷新到的效率可能相差很远。

要解决同样的问题,到底用什么样的工具?当我手上的工具只有唯一的时候,就只能选那个,但是当我可以做选择的时候,我会考虑数据大小、运行速度,以及不同windows和不同office下的兼容性。

2024-01
14

家里的VBA也出状况了

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

说晚上回家跟往常一样工作,却发现某个VBA排序的功能不知道为什么选不到了,那个VBA里面我设定了好几个宏。使用的时候我打开一个新的文件,然后调用某个VBA文件里的某个宏实现某种功能,现在的情况是某个VBA文件里面的某个宏我选不到了,之前从来没有发生过这么屌丝的事情。不仅仅是alt+F8的时候选不到了,当我当alt+F11进入VBA脚本编辑界面的时候,某些宏居然也点不进去了,模块也无法选定。那个时候我真的是非常无语,为什么居然会发生这种事呢?为什么有一些宏就可以,另外一些就不可以?幸好排序的那个功能即便无法用宏去实现,我依然可以轻易手动完成,但是这么诡异的事情实在让我不知道该怎么办。

我完成了那天的工作以后,我首先把office升级了,升级到了最高的版本,同时也把win10的系统进行了更新。所有东西升级完还没有重启之前,我测试那个之前诡异的VBA文件。好像情况又不像我工作的时候遇到的那么糟糕,但是情况时好时坏,有时能选择得到,有时选择不到。当我彻底更新的重启再次进入系统以后,发现那个VBA好了,彻底的好了,但是有时也会出现一点点鼠标转圈的卡顿。我的VBA都还没有进行任何的操作,为什么就卡顿了呢?

周六晚上我又进行一些很常规的操作的时候发现VBA的某些宏又出现了我办公室那台电脑上曾经困扰我的事情。会直接跳出来说,某些copy的功能不可用,你可以进行调试或者结束。这种东西是完全没有道理的,因为之前我都一直还在用着那个文件,没有进行任何的修改。如果说宏的某些问题跟跨表调用数据有关,但在这个出了copy问题的宏里根本就没有进行这种高端的操作。弹窗的报错是因为文件某个另存为的功能无法实现。为什么会有如此低端的问题呢?我隐约记得办公室的那台电脑出现这个问题的时候,我把电脑重启,然后就好了,什么都没有修改。

所以这到底是什么问题导致出这种错误呢?我严重怀疑周五晚上我遇到的那种事情,是因为win10正在后台悄悄地进行升级。首先是下载文件,会占用我大量的CPU和内存,因为家里这台电脑是2012年组装的,已经非常年迈了,i3二系的CPU进行日常的操作,上个网之类完全没有问题,但如果win10要进行大量的资料下载,同时也要进行那些东西的安装,我说不准会不会就会产生问题。理论上要不要升级,什么时候升级都应该由我来决定,但实际上win10在升级这个问题上,总是悄悄地在后台自动进行,当它提醒我的时候,通常下载和安装都已经完成,最后就只是让我决定什么时候重启。

单位办公室那台电脑出现那个问题的时候,我也觉得应该跟windows或者office的某些更新有关,但是我遇到问题的那个时间跟升级的那个时间相差挺远,没有找到接近的,所以我就没有继续在那里纠结。单位办公室那台电脑,VBA出不出状况,很难说情况,时好时坏,可能一天下来都没事,但也有可能一天会撞上好几回。有些时候把同样的文件复制过去,再次使用就没有问题了,有些时候得重启一下就好了。除了这两款以外,我实在找不出还有什么解决方案,但幸好这两款还暂时还能应付的过去。家里这台电脑之前我一直没有遇到过VBA相关的问题,周五晚上是我遇到的第一次,周六马上遇到了第二次。

Windows用了那么多年,VBA也用了那么多年,但微软居然会在这些如此普通的事件上面犯错误,所以如果我只是需要求稳定,我还可以相信谁呢?

2023-12
20

坎坷的37岁

By xrspook @ 8:40:53 归类于: 烂日记

38岁生日的这一天,我写一下37岁的回顾。

37岁好像从头到尾都很难熬,因为生日没几天我就新冠了。接下来就是等过年,然后是抓紧时间去中山一院,运气好,有床位,赶紧进去住院,把巧囊切了。拿着第1次在中山一院做的阴超报告,上面写着“巧克力囊肿?”的时候,我赶紧搜索那个东西,原来那个玩意是会复发的。麻涌医院的医生说,得赶紧到医院切掉,因为那个东西已经很大了,一旦发生扭转,后果不堪设想。当我去中山一院再做了一个B超,确诊了那个东西以后,我立马就觉得这是要切掉的,但是住院了,教授第1次查房的时候,他问了一句之前有没有试过中医,我才意识到可能虽然我这个东西不小,但依然有可能通过中药调理把那慢慢缩小。既然我已经住院了,既然我已经达到了手术指征,所以手术继续。让我没有意识到的是,术后的那些东西远远比手术本身恐怖。比如手术之后到我终于感觉自己是个正常人,花了接近一个月的时间。虽然一周之后去拆线的时候,我已经能比较正常地活动,但是因为一直的腹胀,让我痛苦不堪,益生菌救了我一命。住院的花费我以为很多,尤其是一次又一次地叫我交钱的时候,但实际上最后把绝大多数的钱都退还给我。但是后续六针的诺雷得和莉芙敏,以及在之后长达两年的唯散宁和散结镇痛胶囊,直接让我无语了。打在肚皮的缓释针诺雷得,一针的价格就等于住院一个星期自付的金额。所以诺雷得没打几次,东莞的异地就医门诊统筹就用光了,但是到了2023年的最后一个季度,又出了一个新的政策。某些药虽然在门诊使用,但是却排除在门诊的统筹封顶线之外,诺雷得是其中之一。

每个月都得去找医生,2023年我去中山一院看医生的频率比我过去10年累加起来还要多。

这个与巧囊相关的东西,除了打针吃药以外,还顺带给了我一些之前从未有过的体验。比如不断地做梦,比如潮热,比如非常易醒,比如躺在床上,脑子里全都是些负面的东西。大概睡眠不好的人没办法让自己拒绝掉那些有与抑郁有关的念头。对我来说,这都可以说得过去,因为诺雷得的影响,因为那个东西直接让雌激素不分泌了,所以我就进入了一个假绝经期,后来,莉芙敏拯救了我,但莉芙敏是一个每个月500多块钱全自费的进口药。当时医生没有问我能不能接受这个价格。后来我觉得莉芙敏这个东西除了贵没什么不好。因为起码在吃莉芙敏的时候,我没有经历过吃唯散宁时期的那种莫名其妙非常轻易便秘。

除了巧囊相关,我也有继续自己平时的运动,比如动感单车,比如投篮,但是跑步这种事直到最后一个季度才开始。因为打诺雷得的时候,我不知道是我心理作用还是真的那样。我甚至做不了卷腹,下腹部是那种无法发力的状态。不是因为肌肉太弱,而是因为强行那样做会痛。

在没有被巧囊折磨的死去活来的时候,我自学了一些东西,写了一些VBA的脚本,这也是我2023年让我觉得最有成就感的部分,但是2023年的最后一个月,某一天VBA脚本出现了毛病。那是一些根本说不准为什么会出现的毛病。反正只要弹出来的窗口,每一次都一个花样。经过纠结和讨论,我觉得那不是我的问题,那有可能是Excel的问题,是不同版本office的问题,也有可能是不同版本windows的问题,但既然这个东西出现了,我就不能逃避,但是问题的出现又毫无章法,根本没办法用普通debug的过程解决。

希望38岁以后的我,再也没有生理上的烦恼,也不会遇到太多根本说不准什么原因的微软系统问题。

2023-12
13

VBA神经质了

By xrspook @ 13:28:44 归类于: 烂日记

星期一上班的时候跟往常一样,我打开了其中一个我常用的VBA脚本,结果发现当我按下按钮的时候,马上闪退。接下来会自动打开一个Excel。开始那几次我直接把那个关掉了,后来我选择新建一个空白文档,然后会看到左边显示可以恢复我之前闪退的那个Excel。到底为什么那个VBA脚本会闪退呢?上周四离开之前我没有做任何奇怪的设定,基本上查完数据就关掉了,最后的保存时间是下午5点多。放置VBA查询脚本的文件夹是本地文件夹,没有设定同步的。无论是我关闭的时候,还是说我关闭之后文件都没有被修改过。为什么之前一直没有问题,这一次却闪退了呢?重新载入,打开失败的Excel文件之前,我从同步的文件夹里把同款的VBA脚本文件复制了过去,结果发现那个VBA脚本就没有闪退这种问题。就VBA的核心编程来说没有任何区别,为什么一个会闪退,另外一个却不会?闪退了之后重新保存那个文件不闪退。

VBA脚本闪退这个问题,当我第一次看到的时候我是挺慌的,我赶紧把其它VBA也打开试了一下,发现其它没有问题。为什么就只是这个文件有问题呢?一天下来,我也再也没有发现其它的问题。周一的晚上我要用另外一个VBA文件转化数据,结果却发现不成功,被卡在了某个步骤,那个步骤是把当前工作簿的某个工作表复制到新的工作簿。我一直都是采用那种操作方式,为什么之前就没有问题呢?接着我打开另外一个同样需要复制工作表到新的工作簿的VBA文件,结果发现那个更糟糕,显示的是activeX错误。转化数据的那个VBA脚本直说卡在了另存为那个步骤,我还可以手动把已经生成的数据复制到我想要的地方,所以工作是可以继续下去的,但另外一个activeX出现问题的工作簿是属于那种另存为也不行直接保存也保存不了的状态,无论如何都说我数据错误。这就让人觉得很无语了,因为上午下午我都打开过那个文件查询过数据,为什么一直都没有问题呢?

当windows出现问题,绝大多数情况下重启一下就好了。无计可视之下,我重启了电脑,转换数据的那个VBA直接就好了,没有问题了。和另外一个activeX出现故障的那个,好像一直都是那样,但是当我把同步文件夹里面的同款复制过去以后也好了。是Office某个安装文件损坏导致的这种问题吗?为什么同样的文件复制到某个文件夹里就好了呢?VBA脚本是我自己写的,其中关联了什么我自己清楚。VBA脚本放在什么地方跟使用没有任何关系。所以到底是什么原因到导致了VBA的这种神经质呢?

星期二早上,什么都没干之前,我赶紧看了一下windows的更新,结果发现对上一次更新是在11月,显然跟我出状况的那个时间不吻合,但Microsoft365到底是什么时候自己做的孽?这个我查不出来了。反正周二的早上我首先对win10进行了更新,然后也对Microsoft365也进行了更新。如果依然出现严重的VBA问题,我觉得我得对Microsoft365进行修复。如果问题依旧,估计就只能重装Microsoft365。

一开始我以为这只是VBA的问题,结果发现,我的某个word里面的交叉引用也出现了错误。我非常肯定之前是没有这种错误的,因为那个文档我复核了很多遍。如果有那种错误,我肯定会复合得出来,之所以我完全不知道那个错误的存在是因为我复核的时候,根本没有那种错误。交叉引用的错误跟VBA的随机错误到底是不是同一个问题引发的呢?那个又到底是什么类型的问题呢?我真的希望有人说那是因为win10的某个更新导致的,卸载那个更新就可以解决问题。

现在我依然没找到原因,所以就只能祈求不要遇到这种问题,又或者遇到这种问题的时候见招拆招。

2023-11
9

隐藏属性

By xrspook @ 8:30:41 归类于: 烂日记

又是一个下班之后继续干,干到直接忘记写blog。如果不是这么着迷的话,理论上我会先烧水,把麦片泡着,然后打开语记开始口述blog,接着开吃,但如果我过于着迷,泡麦片的时候我会在那里写代码,吃麦片的时候也在那里写代码,吃完麦片以后往杯子里加水,等待水凉的时候继续写代码。可能那杯水我得花好几十分钟才喝完(一边喝一边写代码),也可能等我喝完的时候已经过去了一两个小时,又或者是我根本就不记得喝了。之所以要加一杯水,因为本来吃完麦片就得喝水,如果我不马上洗杯子,东西干在那里很不好洗,如果有水泡着就会容易些。所有习惯,只要遇上着迷于写代码这种事,全部都会变成渣渣,除了显示屏上的东西,身边的一切我都完全没办法放任何的注意力,除非是内急之类。写代码这种事对我来说通常是一发不可收拾的,完全停不下来,所以我没办法预测我得花多少时间,我知道我的目标是什么,但开始的时候通常我不知道具体该怎么做,就更加不好说得耗多久。之所以会这样,因为写代码不是我的强制工作,我不靠那个赚钱,没人要求我必须得那么干,纯粹出于个人喜欢。

光是写出来还不行,当我觉得效率很低的时候我会不断地在那里挣扎,到底有没有其它方法呢?还有没有其它的途径实现这种功能?

遇到问题,光在那里想,是不会有结果的,但只要干,埋头苦干,方法就会自己涌出来。大概是几天前,我不知道在哪里见过意思差不多的话,对我来说,写代码的时候会这样。如果我用的是python,因为我的目标很简单,所以绝大多数情况下都有现成的解决方案,只是那个方案是不是高效,能不能再提高一点而已。但如果我用的VBA+ADO+SQL,情况就很不一样的,因为VBA里的SQL被严重阉割,虽然理论上没什么东西是SQL解决不了,解决不了就输出到VBA的数组继续解决。我第一个接触的代码是CSS,然后是HTML。有段时间我迷恋于花俏的网页特效,有些联合CSS+HTML能实现,但有些不得不用javascript。当年我无数次想开始学习javascript,但一直都没开始。后来,我的大学课程里有C语言,我还考了二级C语言的等级证书。上机是满分通过的,但笔试70不到,所以我那张证书上只是合格而不是优秀。如果能重来,我会做到优秀的。但实际上,优秀不优秀又有什么意义呢,招聘的时候那不过是别人一扫而过的一张纸,甚至不会在别人脑子里留下任何记忆,但为了“优秀”那两个字我就得在上面付出很多,因为考证的考试范围大于大学课程的教学范围。

从我开始接触互联网,我的各种兴趣就没有停止过,写代码这事也一直贯穿其中,CSS、HTML、C语言、php、python、R语言、DAX、M语言、VBA、SQL,其实我也尝试过java,因为那是安卓的基础,或许还有一些我漏了没列出来。或许,码农是我天生的隐藏属性。

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