用excel vba一劳永逸的解决了一个问题
前段时间用excel vba解决了一个问题,发现vba结合excel真的挺强大的,能很省事的解决某些问题。
过程是这样的,我们这边项目有一些excel文件,里面的数据有一个ID列,这个ID列由字符和字母组成,大概长这样
而这些ID实际在被程序使用的时候,会被一种算法转码成另一种格式。某一次,一些非程序人员如策划、运营碰到了一个问题,他们需要得到这些ID转码后的结果,只需要这一列, 并且用文本文件保存。
转码这些excel的工具我们有,但是专门转这一列并将结果导出为文本的工具却没有,于是我们写了一个python脚本,读取excel内容,转码这一列,并将结果保存为文本文件,然后提供给他们,需求完成。
然而后来出现一个问题,这个表格会频繁更新,更新后运营他们又要找程序重新生成文本文件,原本程序可以把脚本交给运营,让他们自己执行即可,但是运营却不愿意在电脑上专门装个python,同时执行脚本,可能他们觉得这么做很复杂,宁愿频繁来麻烦程序。
后来程序实在受不了了,觉得给他们开发一个带GUI的转码导出工具,让他们自己用工具去完成任务。然而这么做显然有点小题大做,要专门为这么小需求开发一个系统。
后来我想到了一个法子,用excel中的vba功能写一个转码函数,让他们自己用excel完成任务。这个vba函数大致如下
Public Function SHL(nSource As Long, n As Long) As Long
SHL = nSource * 2 ^ n
End Function
Function str2id(strid)
a = Mid(strid, 1, 1)