2024-09
11

VBA里奇怪的筛选与粘贴

By xrspook @ 9:05:57 归类于: 烂日记

上周五我尝试纯粹用VBA的方式对某些数据先进行筛选,然后保留在粘贴板,又或者是把那些东西输出。前提是对某些数据进行筛选复制的时候,我首先必须得有个条件。理想很完美,现实很骨感。

VBA本身就自带一个叫做autofilter的函数,那个东西可以对选定的单元格区域进行筛选,你可以正向选择,正向的时候可以多选,可以把需要选择的内容组成一个数组,实现多选。你也可以进行反选,但反选的时候你却不能把反选的条件建立成一个数组进行同样的操作。这些都只是针对一次筛选而言的,如果同一片区域多次叠加筛选,第一次你筛选的是第1列,第二次筛选的是第2列,我感觉如果第三次和第四次你反选的是第2列估计也行,但关键是我需要选择的那个数据是一个作死的不规范有两行甚至三行的标题栏,但是autofilter这个函数默认输出的东西就含有标题栏。本来我的数据范围是不规范的,如果我一开始就把前面三个标题栏给去掉。那么在我进行autofilter的时候,就会从纯粹的数据开始,显然那就不是我想要的东西了。因为哪怕最终筛选的数据是空,也会默认带入那个标题栏。所以你就搞不懂为什么步骤都对,但结果就不对。

autofilter之后要进行一个特殊粘贴,那个东西是只对可见的数据复制。就普通人的思维而言,我复制了可见的数据,那么理论上我就可以算出它有多少行,如果是0我就直接不输出了,如果大于0,那么我就可以输出,但实际上特殊粘贴又不可以用一般的技术判定到底筛选的结果是不是0。虽然也能判断有没有,但需要绕一个圈去实现这种功能,所以VBA为什么有那么神奇的思路呢?筛选可以进行,但是你不能对反向的数据批量进行处理,你也不能把特殊筛选结果直接保存为某个东西。当你觉得你大概可以把可见的部分保存到一个新的区域,然后你就可以去头去尾之类,但实际上当你再去查看那个新区域的时候发现原来是保存了个寂寞而已,那种神经性质跟那个可见区域是一样的。我不知道以前的人到底是怎么忍耐VBA这些奇怪脾性的,因为在接触这个之前我就已经接触过pandas。pandas的数据分为两个,一个是标题,另外一个是数据。输出的时候你可以都输出,你也只可以只输出其中的一部分。在使用pandas的时候,我没有解决过一些我的实际问题,我都是按照书本上的例子进行操作的,所以到底在我使用的过程中会不会也遇到一些像VBA这么神经,明明觉得可以,但实际上又不可能直接实现的事情不知道。

周五的下午,折腾了一番以后,我的目标数据最终可以复制到粘贴板,但是在VBA那个脚本结束之前,我就也得把那粘贴出来,否则当那个结束以后,剪贴板的内容就没有了。为什么会这样呢?不是说当我把数据复制到了剪贴板,而我又把Excel关掉,软件会问我要不要清空剪贴板的数据吗?但显然现在Excel都没关闭,我只是关闭了那个脚本,但我剪贴板却什么也没有了。

周五在回家的路上,我又努力地想了想这个问题。最后决定,我没有必要这么折腾自己获取剪贴板数据。反正全体数据不多,我直接对那个整体数据进行加工处理就行。加工处理的方法是首先从我的目标数据那里通过VBA获取我要的部分,然后输出到指定的位置,接着通过ADO+SQL进行数据处理。准确的来说,就是一个分组聚合、添加汇总以及排序。当然其实最后这个ADO+SQL的操作我也可以换成数据透视表,但如果那样的话,最后的排序我要让那完美的按照我想要的方式,我就只能先在Excel添加一个自定义的序列。无论是SQL还是数据透视表,分类汇总和排序都一定会比在VBA里用数组方便非常多。

思考一个问题的时候,有时可能我们有点过于钻牛角尖了,退一步,可能会有一个更清晰的思路。

2023-12
2

在摸索粘鞋技巧的路上

By xrspook @ 23:59:47 归类于: 烂日记

鞋子到底该怎么粘呢?一开始的时候,虽然在动手前我已经看过不少视频,但是自己做的时候,还是会各种忐忑。对一些细小的部分,理论上应该用牙签,但是实际上我手头上没有,所以当时我用的是会形针。第一次用那把小刷子的时候,我就已经马上感受到要把那东西洗干净太不容易了。虽然胶水没办法把刷子的毛粘住,但是胶水自己会自己粘自己,所以就等于胶水把刷子的毛都粘起来了。该用什么方法把刷子上的残胶处理干净?从第一次开始就已经在折磨我。UP主说可以把刷子泡在水里,第二天再去撕,我没有这个耐性,所以我从来没做过,每一次我都是沾完胶水以后等胶水干了,我就在那里摩擦刷子的毛。这样的话胶水就会变成一条一条的丝,然后我就开始在那里拔。一次两次还行,两次以后还这么干的话,我觉得那个毛已经被我搓得有点变形了,因为要拔,因为要比较用力撕开,所以我觉得刷子的某些毛都已经被我拔出来了。刷子到底是不是个耗材?所以是不是要批量购入这样的刷子。如果粘一次鞋就得毁掉一把刷子,这样会不会太奢侈。

后来我终于准备好了牙签,也发现了其实刷子不一定要用毛的那部分,买胶水送的那把小刷子,除了毛那部分,另外一边的刷头是扁形的,显然这是有意设计的,所以那个扁平状的东西,实际上就是用来刮胶水的,除了用来刮平面的胶水以外,还可以刮缝隙中的胶水。因为胶水这个东西并不是越多越好,只要你涂抹均匀了,薄薄一层就足够,所以刷子的一头可以这么干。扁的那一头,刷完胶水以后,只要拿纸巾一擦,马上干净了,又或者没擦,直接让胶水留在上面,等胶水干了以后,轻轻一搓胶水就下来了,比有毛的部分更好用。当我把鞋子粘了一遍又一遍以后我慢慢的掌握到了这个东西,当我再去看了主最新的修鞋视频,居然他也这么干,在那个最新的视频里,他没有再用毛的部分去刮平胶水,而是直接用扁的那部分刮平,然后铲掉多余的胶水。我不知道UP主之前是如何清洗掉毛刷的那些胶水的,但显然,对任何人来说,清理那个都是很麻烦的事。

到现在为止,我用新买的绿豹510胶水粘过4双鞋。一双是儿童篮球鞋,一双是brooks的鞋,另外两双是Mizuno的鞋。对我来说,最重要的是必须能粘住Mizuno的鞋,因为我有很多,有些还没穿过,有些穿过一段时间。Mizuno的鞋,正常情况之下,我觉得穿三年没问题,甚至五年都可以,有些鞋已经是三年前买的,当我把现在这些鞋穿得差不多轮到它们出场的时候,估计已经超过了五年。买了大概两年多才开始穿的鞋,拿出来的时候很快就会开胶,这也就是为什么我必须要找到一个粘鞋的方案,否则我真没有勇气把那些放了很久的新鞋拿出来穿。

经过测试之后,我发现美津浓的鞋,鞋面织物跟中底是比较容易粘合的。粘合以后也非常牢固,但是如果鞋面是有热贴,又或者有其它有涂料成分,非常有可能跟中底粘合不那么牢固。我尝试过大概差不多就那么粘上去,结果发现织物的部分非常牢固,但是有涂料的那些很容易开胶,我也说不准是开胶了还是根本我就没粘住,按压的时候没有强调注意过那些地方。周五的中午我又做了一个尝试,对热帖的部分,用eva的处理剂重新处理,在处理之前我尽可能地做了打磨。eva处理器上去的时候,很快就能看到中底部分很快就干净了,热贴的部分表面的涂料也已经没有了。UP主的某些视频里也曾经说到过热贴,热帖也让他很头痛,因为直接粘热贴是粘不住的,他得用电磨机把热贴的部分打磨掉,起码要把涂料给打磨掉。我尝试过用砂纸打磨掉热贴的涂料,但效果不明显,但是用EVA处理剂就能比较容易地把热贴的涂料去掉,但我去掉的是不是真的就是热贴的涂料呢?真的粘牢固了吗?这我得经过后续的长期穿着去验证。

一开始只看视频还没动手的时候,我一直都在尽力学习模仿UP主的压合动作,现在我已经压合过一些鞋子以后,当我再看UP主的视频,一定程度上我发现,原来在不知不觉中我们的某些手法已经很类似了。如果UP主修鞋真的很成功,我希望自己也能hold得住自己那些开胶的Mizuno跑鞋。

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