~ 上傳‧分享‧網賺 ~
~ 免費上傳空間‧請即申請 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 留言:
發佈留言