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 麥可傑克森