~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 Freak Share ~
~ 進入後請點選左上角 注冊 ! ~
~ 声明事项 ~
如各位想把以下本文章转贴 , 请记得要注明出处.
本文章之内容为本人之经验所写, 绝无抄袭成份, 特此声明.
由于图片制作需时, 所以更新会比较慢.
存放图片的 SHARE A PIC SERVER 可能读取速度较慢, 请耐心等待.
上一回有说过 , 如果在报表没有任何数据的时候 , ActiveCell.End(xlDown).Select 这一句程序代码会变得怪怪的 , 而且会选择了 65536 的储存格 . 所以 , 今次我们要做的 , 就是要使计算机学会选择 . ( 注意哦 ~ 不是要它有人工智能 , 只是要它按照我们的指示来做事哦 , 人工智能就别想了 , 这是大部份程序设计者都有过的梦呢 ~ 呵呵 ~ )
首先 , 我们要想清楚一件事 , 现在我们的报表中 , 是什么记录都没有的 , 如果要在第一个记录位置把数据记录下来 , 直接使用 Activecell.End(xlDown).Select 就会出问题了 , 所以我们要先叫计算机去确定 储存格 B2 到底有没有东西 . 而最简单而且又是最直接的方法 , 就是 IF ~ THEN ~ ELSE ~ , 按照我们例子中的要求 , 我们要告诉计算机 , 如果 储存格 B2 没有数据 , 就进行 ... 否则 ...
既然我们知道了第一部 , 现在要想的就是 " 当储存格没有数据 , 计算机要怎样做 " 和 " 否则要怎样做 "
感觉到一点点烦恼了吗 ?? 哈哈 ~ 如果你是编写程序的初写者 ( 菜鸟级 ) , 那么你一定会开始感到头痛了 , 可能在说 " 又这又那的 , 真烦人 ~~ 不学了 ~ " , 冷静点哦 ~ 别着急 , 你一定可以搞清楚的 , 放心吧 ~ 我以前也是搞不懂的 ~ 呵呵呵 ~
想一想 , 我们可以要计算机每一次都确定下一个记录位置有没有数据 ( 计算机做事的时候 , 给它电来吃就好了 , 不用给钱的 ~ 呵呵呵 ~ ), 但是程序的执行速度会变得十分惊人 , 简单的东西可能要十分钟才完成 , 这样子不就是废物吗 ? 所以 , 在考虑解决方法的时候 , 太过耗费时间的方法就可以不考虑了 . 如果我们配合之前学到的 Activecell.End(xlDown).Select 一起使用又会如何呢 ?? 当你想到这一点 , 就证明你真的想学会怎样自制工具了 ~ 加油 ~ 加油 ~ 加油 ~
在我告诉你怎样解决问题之前 , 我要先教你一个东西 , 就是在程序设计上 , 最基本的选择方法 : GOTO .
GOTO 这个方法就是要计算机去指定的地方 , 比如说 , 如果现在时间大于或等于 18:00 , 就回家 , 否则 继续工作 . 回家 , 我们可以想成一个步骤 , 而计算机程序在利用 GOTO 这个东西的时候 , 情况就跟这个比喻相似 .
我们现在先在程序代码上加一点东西 , 让我们可以看得到程序是怎样运作的 .
Worksheets("Sheet1").Range("B2").Select
If Worksheets("Sheet1").Range("B2").Value = "" Then Number = 2 Else Number = 1
If Number = 1 Then GoTo First
If Number = 2 Then GoTo Second
First:
MsgBox ("ab")
Second:
MsgBox ("cd")
如果 Sheet1 中的储存格 B2 的值是空白 , 那么 , Number 这个变量就等于 2 , 否则 Number 这个变量就等于 1 , Number 这个变量可以是任何的字 , 不过当然了 , 如果你什么时候都是 "a" 或者 "aa" , 当你要计算机考虑的东西越来越多的时候 , 你在程序代码所看到的 "a" 或者 "aa" 就会越来越多了 , 所以为了方便程序编写 和 除虫 ( DEBUG ) , 想一些贴切点的会比较好 .
如果 Number 这个变量是 1 , 就去 First , 如果 Number 这个变量是 2 , 就去 Second , 程序代码很容易理解吧 ~ 哈哈 ~ 再下面有看到 , First 和 Second 这两个东西 , 不过后面都加了一个 ":" , 这个就是要告诉计算机 , 你要去的地方就在这里 , 这就是 FIRST , 这就是 SECOND . MsgBox("???") 就是打开一个讯息窗口 , 效果吗 ? 我们来做一下实验就可以看到了嘛 ~ 先别急 , 我们现在先到 B2 的储存格加一个数字上去吧 ~ 再按一下上面的播放按钮 ~ ( 现在 Sheet1 中的储存格 B2 是有东西的 , 那么 NUMBER 就会等于 1 , 而且要走到 FIRST: 那里 )
看到了吗 ~ 看到了吗 ~ 先看到 讯息 ab , 还可以看到 讯息 cd 哦 ~ 放心放心 ~ 我这边的情况也是一样的 , 你的计算机没问题 ~ 放心吧 ~ 计算机就是这样 , 一行一行的往下看 , 真够笨的 ~ 哈哈 ~ 不过这样还好 , 我们就是要给这个笨蛋指令来帮我们做事 ~ ( 这个笨蛋不会说 " 不 ~ " 的哦 ~ 哈哈 ~ )
好了 , 现在再一次吧储存格 B2 的东西删掉 , 看看有什么发生 ~ 哈哈 ~ 只看到 "cd" 这个讯息吧 ~ 这次计算机跳过了 FIRST: 的部份了 ~ 很奇怪吧 ~ 哈哈 ~
好 ~ 如果我们的讯息不是 "ab" 和 "cd" 这两个东西 , 换了别的之后不就是很怪了吗 ? 如果把 "ab" 换成 "正确" , "cd" 换成 "错误" , 那么你就会先看到 "正确" 再看到 "错误" , 你可以告诉我 , 这到底是正确还是错误吗 ?
现在你应该对计算机程序的了解又多了一点吧 ~ 就是它只会一步一步往下走哦 ~ 不会跑也不会跳 ~ 手也累了 ~ 你就先想一想今次教你的东西吧 ~ 先搞清楚它到底是怎样运作的 , 因为往后会接触到的选择比这个还要复杂 , 所以先搞清楚这个的运作模式是很重要的 ~
重点 : 计算机不会自己思考 , 它是要你告诉它怎样选择才会作出适当选择的 . 计算机看程序代码的时候跟我们不一样 , 我们是上上下下不停看 , 但是计算机不会的 , 你叫它做一次就是一次 , 选择一次就是一次 , 程序代码你要它看一次就是看一次 , 除非你要它回去再看 , 就是这样了 ~
今次教你的比较麻烦一点 , 所以请你用多一点时间掌握这里的东西 , 下一回 , 我就会教你 , 怎样才可以使计算机只显示 "ab" 而不显示 "cd" . 从此 "正确" 就是 "正确" , "不正确" 就是 "不正确" , 不会先 "正确" 后再 "不正确" 了 .
0 留言:
發佈留言