2008年7月29日星期二

Part12 - VBA 學習第十一回 - 更多的新事物 ( 繁體 )

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

~ 聲明事項 ~

如各位想把以下本文章轉貼 , 請記得要注明出處.

本文章之內容為本人之經驗所寫, 絕無抄襲成份, 特此聲明.

由於圖片製作需時, 所以更新會比較慢.

存放圖片的 SHARE A PIC SERVER 可能讀取速度較慢, 請耐心等待.

Picture


之前我們都學到了很多東西 , 包括要電腦幫我們選擇 , 要它顯示訊息 , 打造使用者介面 , 增加模組 , 啟動模組等等 . 現在我們就要利用之前學到的 , 和一些新的技術 , 讓我們的倉庫管理程式能夠正式運作 .

首先把之前所保留的程式碼刪掉吧 ~ 我們現在都不需要這些了 , 現在增加一段新的程式碼 Sub Entry . ( 記得嗎 ? 為了方便管理 , 所以名字上要小心地考量一下 , 否則 , 當過了一段日子之後 , 你再看程式碼會不知道它在做什麼哦 ~ )

嗯 ~ 我們來想一想 , 我們要怎樣做 ~

第一 , 要把使用者在使用者介面輸入的東西順利加到報表內 .

第二 , 程式要能夠確定到底最後一個記錄在那裡 .

第三 , 使用者輸入的東西 , 在加到報表的時候 , 要加到適當的位置 , 避免記錄出錯 .

第四 , 我們要怎樣才能打開使用者介面 ... ... ...

先從簡單的東西開始吧 ~ 怎樣打開使用者介面 !

之前 , 我們在 EXCEL 加了一排新的按鈕

( Pic12_1 )

其中一個按鈕 , 可以製造一個按鈕在報表上


( Pic12_2 )

我們就增加一個按鈕吧 ~


( Pic12_3 )

雙擊按鈕 , 會自動進行程式碼編寫窗格 , 你會看到 Private Sub CommandButton1_Click() 和 End Sub , 我們就在這裡加一點東西 , 請你現在打上 UserForm1.Show . 完成之後 , 再打開報表的頁面 , 按一下那個剛剛做出來的按鈕 , 看到使用者介面跳出來了嗎 ? 沒有 ~ 又出問題了嗎 ... " 點兩次又回到程式編寫的介面耶 ~ "

放心放心 , 看一下下面的圖 , 按一下紅色箭頭所指的圖示吧 ~ 告訴你 , 我們在增加按鈕的時候 , 這個按鈕就反白了 , 它是什麼 ? 它就是控制開啟和結束編輯模式的按鈕哦 ~ 記住了 ~ 增加按鈕之後一定要把它按回 , 否則你的按鈕就不能用了 . 如果你有注意看 , 我們剛剛所增加的按鈕上面有六個白色的圓點 , 如果結束了編輯模式 , 這六個白色圓點就會不見了 .


( Pic12_4 )

現在再按一次我們的 CommandButton1 吧 ~ 看了到哦 ~ 使用者介面出來了 ~ 哈哈哈 ~ 先按使用者介面的右上角的 x 關掉 , 然後我們就把不能關閉使用者介面的問題解決 .

打開程式碼編輯介面 , 打開 UserForm1 , 在結束按鈕上連點兩次 , 打開程式碼部份 , 在 Private Sub CommandButton2_Click() 和 End Sub 中間 , 加一行程式碼 END , 回到報表 , 再按一次那個 CommandButton1 打開了使用者介面 , 按一次結束按鈕 ... ... 嘿嘿嘿 ~ 成功了 ~ 使用者介面關掉了 ~ 如果你在設計使用者介面時 , 設計了按鈕來結束程式 , 只要在按鈕內加上一句 END , 之後 , 你的那個結束按鈕就能夠運作了哦 ~

現在我們回到 模組 DataEntry 的 Sub Entry() , 現在就開始程式編寫的偉大工程 ~ 有記得我們對於報表的輸入要求嗎 ? 要求一 : 電腦要懂得自己增加記錄編號 , 二 : 一定要記錄使用者所選擇的狀態 , 三 : 三個不同狀態的記錄位置要分開 .

為了方便之後的除蟲 ( DEBUG ) 工作 , 先增加多兩個模組 , 第一個負責第一次增加記錄時使用 ( 即沒有任何記錄時使用 ) , 名稱定為 NewReport , 第二個負責往後的增加記錄 ( 即報表已經有一個或更多記錄 ) , 名稱定為 AddRecord .


( Pic12_5 )

好 ~ 準備工作又完成了 , 下一回 , 你將會學到更多的東西 , 和正式打造你的第一個模組 ~

對了 ~ 再告訴你一件事 , 如果想要更改在報表上 CommandButto1 這個按鈕的名字 , 只要在程式設計畫面的左上方 , 專案窗格內點選 Sheet1 , 之後 , 在左下方屬性窗格頂部的下拉式選單找到 CommandButton1 , 再修改它的 Caption 就可以了哦 ~

下一回再見嚕 ~

5 留言:

匿名 說...

您好~
我想請問一下,那userform1中的「紀錄」裡面的程式碼要寫什麼呢?有試過呼叫其他兩個模組(add跟new),執行後工作表有資料,可是就是怪怪的

匿名 說...

daar:威廉先生
雙擊按鈕 , 會自動進行程式碼編寫窗格 , 你會看到 Private Sub CommandButton1_Click() 和 End Sub , 我們就在這裡加一點東西 , 請你現在打上 UserForm1.Show . 完成之後,看到使用者介面跳出來了嗎?
ans:我沒有看到使用者介面.而是看到執行階段錯誤.此處需要物件

威廉先生 說...

請參考 :
免費 VBA 教學第七回 - 打造一個使用者介面
http://lazywilliam.blogspot.com/2008/07/part08-vba.html

:)

Unknown 說...

HI 威廉先生
我學會了DIM 了.
EX真的很有用和很多東西學習.
現在想要學習 如何加快計算速度
和學一些新的VBA碼,
就可以用少的VBA碼寫到用多的VBA碼的東西,這樣就會快很多><
威廉先生 何時會再出教學呢?

威廉先生 說...

Hi 伝 ~

新教學文嘛 ~ 最近都提不起幹勁去寫 , 又想不出什麼好的題材 , 到我想到的時候我就會再寫了 :) 放心放心 :)

另外你說的用少一點程式碼 , 這樣的話程式真的可以跑快很多 , 你想要走這個方向就對極了 :)

和你分享一下我的經驗 , 我在寫程式要作出程式碼縮減的時候 , 會想很多個方法出來的 , 比喻 , 你要去一個地方 , 可以用車 , 可以走路 , 可以用船也可以用飛機 , 有多少個方法要視你的想像力 , 而那個較快就要再測試了 :)

( 註 : 除非真的太慢或者自己接受不了 , 否則不用太在意速度 , 合理就好了 , 有時候用家的要求是無理的 ~ 哈哈 ~ )

最後是 ... 謝謝你的支持 :)

最新回應

Loading...

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


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