2008年7月26日星期六

Part10 - VBA 学习第九回 - 计算机的选择 ~ ( 简体 )

| |
~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 Freak Share ~
~ 進入後請點選左上角 注冊 ! ~

~ 声明事项 ~

如各位想把以下本文章转贴 , 请记得要注明出处.

本文章之内容为本人之经验所写, 绝无抄袭成份, 特此声明.

由于图片制作需时, 所以更新会比较慢.

存放图片的 SHARE A PIC SERVER 可能读取速度较慢, 请耐心等待.

Picture


上一回有说过 , 如果在报表没有任何数据的时候 , 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 留言:

最新回應

Loading...

有事啟奏‧無事閒聊 ~ 哈 ~


米高積遜全復刻 哈利波特 Michael Jackson 妙麗 金曲獎 MJ 迈克尔杰克逊其实没有死!美国CBC电台已证实 哈利波特 hongkong168 蓮花河畔景苑 盧廣仲 鄧麗欣 不想放手New! 陳珊妮 方大同 巨乳排球 痞子英雄 23 東風 蕭閎仁 米高積遜全復刻 上海 倒塌 南王姐妹花 周杰倫 變形金剛2下載 michael jackson 去世 天文台 米高積遜 花拉科茜 天圖佈局 浪卡 耳廓狐 神探俏嬌娃 韶关旭日玩具厂 譚曉風 严妍 僧老少閒 地下天文台 金泰浩 百老匯 巨乳排球 陳振聰 柯柏文 aika 麥可傑克森