新手向:试着用白话文来讲讲策划手中的excel_lv2_宏的百度与修改

发表于2015-08-20
评论6 1.7k浏览


版权声明:本文无色瞳(@游戏中翻滚的无色瞳原创首发GAD-腾讯游戏开发者平台,版权所属,拒绝无授权转载

————————————————————————————

1传送门http://gad.qq.com/college/articledetail?cid=3512

其实懒人无色真的很不喜欢一类人……他们有个几乎已经沦为贬义词的名字——伸手党明明自己用一秒钟百度,一分钟筛选就能找到的问题问!理由是懒得百度!你大爷的因为这个我要花费半小时甚至更久给你讲解?发我工资还是给我稿费啊?你的时间和体力就是时间和体力,老娘的时间和体力感情就是渣渣了吗你大爷的╯‵□′╯︵┴─┴

 

咳,所以这一关的开头无色打算先大家怎么百度 - 看我真诚的眼神

先放两个好去处:

http://www.excelhome.net/

excelhome,出excel大牛的地方。对于各种疑难杂症(奇葩问题有很多现成的解决方案。出的各种合集只管收着绝壁干货~例如好用到飞起的excel常用宏合集》

http://bbs.csdn.net/forums/VB

程序猿的乐园,虽然VB并不是主打,偶尔能找到一点现成下载,还有少量的

 

因为之后要说配置文件,所以无色决定将关键词锁定为 excel 生成TXT,搜索的时候,关键词excel+/函数+你需要的功能不出意外都能轻易捕获想要的内容

http://club.excelhome.net/thread-777114-1-1.html

直接给个地址

嗯,一堆搜索结果中,无色下意识就选中了一个带有Excelhome前面有介绍)商标而且还居然utf-8utf-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格式,要知道,txtjava一向可以相互改后缀的。所以我们直接.JAVA也没有关系。而且虽然原来的宏是让导出文件命名和excel一致,但你完全可以手动修改成想要的文件名

Open ThisWorkbook.Path & "打字好麻烦.java" For Output As #1

 

Row = 3 '开始行数控制这里起始行3,根据需求,我们可以改成2,或者1

Row=2

 

While Cells(Row, 2).Value > 0while循环语句这里代表如果第二列的内容大于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


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引