新手向:试着用白话文来讲讲策划手中的excel_lv2_宏的百度与修改
版权声明:本文由无色瞳(@游戏中翻滚的无色瞳)原创首发GAD-腾讯游戏开发者平台,版权所属,拒绝无授权转载
————————————————————————————
第1关传送门:http://gad.qq.com/college/articledetail?cid=3512
其实懒人无色真的很不喜欢一类人……他们有个几乎已经沦为贬义词的名字——伸手党!明明自己用一秒钟百度,一分钟筛选就能找到的问题。他、非、得、找、你、问!理由是懒得百度!你大爷的因为这个我要花费半小时甚至更久给你讲解?你发我工资还是给我稿费啊?你的时间和体力就是时间和体力,老娘的时间和体力感情就是渣渣了吗你大爷的!(╯‵□′)╯︵┴─┴
咳,所以这一关的开头无色打算先教大家怎么百度( ゜- ゜)(看我真诚的眼神)
先放两个好去处:
↑excelhome,出excel大牛的地方。对于各种疑难杂症(奇葩问题)有很多现成的解决方案。出的各种合集只管收着绝壁干货~例如好用到飞起的《excel常用宏合集》
↑程序猿的乐园,虽然VB并不是主打,但偶尔能找到一点现成的下载,还有少量的宏
因为之后要说配置文件,所以无色决定将关键词锁定为 “excel 宏生成TXT”,搜索的时候,关键词excel+宏/函数+你需要的功能不出意外都能轻易捕获想要的内容。
http://club.excelhome.net/thread-777114-1-1.html
↑直接给个地址
嗯,一堆搜索结果中,无色下意识就选中了一个带有Excelhome(前面有介绍)商标的,而且还居然带有utf-8(utf-8编码是比较喜闻乐见的配置文件常用编码)这个关键词?不管这个问题最后解决没解决都值得作为第一首选。
↑我们就拿地址楼主待修改的只能导出ansi编码的宏为例吧
先让我们直接放到excel里去用一下
这是excel表里随便排好的内容(测试导出最好能东缺一块西缺一角)
这是他的宏
像上一关讲的那样用按钮关联宏并运行
↓
运行成功的话,你就可以在excel所在目录下找到和excel同名的txt了
但是讲真,像无色这样一个懒出风格,懒出境界,懒出新风尚的人,怎么会去手动找这个excel所在的目录呢?
所以看吧,这里又有个小窍门啦(o゜▽゜)o☆——
在任意单元格粘贴:
=HYPERLINK(REPLACE(CELL("filename"),FIND("[",CELL("filename")),99,),"文件夹传送门")
↑笔记在哪里?
弄好记住回车(不回车不会变成链接色哦(链接色是什么鬼啦
点击传送门你就能直达excel所在目录了啦ヾ(≧へ≦)/
↓
╮(╯▽╰)╭还等什么?点开test.txt呀
↓
将该txt和你的excel表对照一下,很快就能发现问题——似乎缺了很多部分?
嗯,要知道,网上找到的东西,不一定完全符合你的需求,这个时候就要对你找到的宏进行适当的修改
所以我们先来看看我们还留下了什么:
嗯,首行首列消失了。大概是写宏的人为了其个人需求设置的
然后,竖排找到为空格的单元格,就停止了继续向下录入
简单阅读后,我们可以树立一个只需要小改就能达成的目标:
从第二行开始输出第一列的内容到“打字好麻烦.java”,直到这列某个单元格为空
然后让我们来阅读宏(好好看无色追加的紫字!这些都是重点(/゚皿゚)/ )
___________________________________________
Sub write_txt()’没什么好说的,宏的名字
'Open ThisWorkbook.Path & "" & Split(ThisWorkbook.Name, ".")(0) & ".txt" For Output As #1 '稍作阅读可以明白,这是导出的txt的存储路径。也许你需要的配置文件是java格式,要知道,txt和java一向可以相互改后缀的。所以我们直接改成.JAVA也没有关系。而且虽然原来的宏是让导出文件命名和excel一致,但你完全可以手动修改成想要的文件名
‘↓
Open ThisWorkbook.Path & "打字好麻烦.java" For Output As #1
‘Row = 3 '开始行数控制←这里起始行是3,根据需求,我们可以改成2,或者1
‘↓
Row=2
‘While Cells(Row, 2).Value > 0’while是个循环语句,这里代表如果第二列的内容大于0,继续向下循环(输出)下去,我们的目标是第一列,so……
‘↓
While Cells(Row, 1).Value > 0
‘col = 2’起始列,根据需求,我们可以改成2,或者1
‘↓
col = 1
‘For col = 2 To 8 '8为结束列数←原本是依次输出2~8列,现在我们只要一列了,就可以直接删掉这句,但是直接删掉就需要删掉下面的nextcol,那就要讲到for循环了。无色的本意仅仅是讲解如何用,所以省去这个理解成本的最好方法是
‘↓
For col = 1 To 1
Print #1, Cells(Row, col).Value;
Print #1, ""; '后跟分号,数据紧随
Next col
Print #1, '数据换行
Row = Row + 1
Wend
Close #1
MsgBox "数据导出完毕"
End Sub
___________________________________________
上面的宏多余的文字我都注释好了你可以直接复制进去保存
↓
点按钮
↓
点传送门
↓
↓
到此为止,我们前面的目标:
就算达成了(o゜▽゜)o☆
你要问我辛辛苦苦改这些有什么用?
百度+修改,可是最节省时间和精力的用好excel的方法。
然而只有当你真正能够做到活学活用……才能真正从遇事只想依靠别人,如果别人不想管你就无能为力的伸手党世界中走出——
*截自百度知道,学会上一关的同学会不会弄这个?
刚刚那个宏当然也是可以拿来活学活用,为依然摸不着头脑的初心者着想,下面我们来
这个例子的作用在于,让我们从填配置表的繁重工作中解脱
↑
没错这就是下一关的预告了,我们下一关见哦!ヾ(≧へ≦)/
-第2关完-
lv3传送门:http://gad.qq.com/college/articledetail/6505