[心得] VBA如何更新匯率

看板Accounting作者時間7年前 (2017/01/26 13:52), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
VBA如何更新匯率 網誌圖文版: http://www.b88104069.com/archives/4159 Excel在資料輸入方面,分成兩大類型,一個是直接於儲存格輸入文字或數 字,另一個是引用其他儲存格作為參照內容,正是這個超連結功能,讓 Excel在操作上非常靈活。上一節介紹了VBA的InputBox函數,這個函數可以 透過對話方塊輸入資料,不過在實際使用上,會發現這個函數無法引用其他 儲存格內容。對此,VBA另外有個InputBox方法,它功能和InputBox函數類 似,但是可以突破函數限制,以我們熟悉的Excel操作方式,直接於工作表 選取範圍作為參照內容,以下具體介紹。 一、銀行借款明細表,以名稱方式設定匯率,換算外幣。 二、VBA程式如圖所示,綠色部份是在前面加了一撇的備註,如同在Excel資 料編輯列前面加上一撇,函數公式會變成是純粹文字,在VBA程式句前加一 撇,會變成是程式集裡的單純文字,是程式說明的習慣用法。 三、執行巨集,在對話方塊想引用工作表上的匯率,發現滑鼠只要一離開對 話方塊,馬上不停地轉呀轉,一句話,沒辦法超連結。不過這裡如果單純輸 入數字,是可以達到更新匯率的效果。 四、改用「Application.InputBox」方法,「Type:=8」表示資料型態是儲 存格參照。於此設置一個自動檢查程序:「If RMB < 0 Then MsgBox "匯率 不得小於零": End If」。正常在VBA語法,「End If」應該獨立一行,這裡 簡潔起見,加了「:」將兩行程式連結成一行。另外對於「Names」而言,「 Value」(值)和「RefersTo」(參照)兩種方法的結果是一樣的。 五、為了測試檢查程序是否有效,參照到一個數值為負數的儲存格,果然跳 出警示視窗,不過這裡並沒有進一步特別作處置,所以程式仍然繼續往下跑 ,結果就是以負數匯率換算。 六、另外也測試直接輸入數值,按「確定」,一樣跳出警示視窗,表示已經 設定了「Type:=8」,不正確鍵入參照是不行的。注意到上個步驟是有警示 但可以進行,這裡不僅僅是警示,而且此路不通。 七、正確於對話方塊輸入參照的畫面。 八、輸入完了兩個參照,果然更新了匯率和本幣借款金額,名稱是直接更新 數值(6.3),並沒有保留參照(=$B$2),這是VBA程式和Excel公式不同的 地方。 這篇文章以VBA函數和事件的方式,透過對話方塊輸入資料,對於Excel而言 ,每項程序巨集,都是像篩選和排序那樣較為複雜的指令操作。在Excel上 方,配置有分門別類組合好的功能區頁籤,例如常用、公式、檢視等,把所 有相關的指令按紐放在一起,VBA對話方塊也是類似方式,將自己寫好的程 序放在一個面板上,也就是表單及控制項,具體操作稍後介紹。 延伸閱讀: VBA如何整理程式代碼 http://www.b88104069.com/archives/4157 VBA如何更新會計期間 http://www.b88104069.com/archives/4158 VBA如何批次刪除空白列 http://www.b88104069.com/archives/4153 -- 周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office 會計人的Excel小教室: https://www.facebook.com/acctexcel -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.20.96.237 ※ 文章網址: https://www.ptt.cc/bbs/Accounting/M.1485409977.A.00E.html

02/01 19:26, , 1F
推!
02/01 19:26, 1F
文章代碼(AID): #1OYOwv0E (Accounting)