Board logo

標題: 2個數值比較,取較大值 [打印本頁]

作者: fangsc    時間: 2012-6-17 12:08     標題: 2個數值比較,取較大值

請教VBA寫法.

C欄與D欄數值做比對,
C小於D,則將D值取代C,
C大於D,則保留C值
如遇到A欄為空白時,則略過,不需比較.

感謝!!
作者: register313    時間: 2012-6-17 12:29

回復 1# fangsc
  1. Sub xx()
  2. LR = [A2].CurrentRegion.Rows.Count
  3. For R = 3 To LR
  4.   If Cells(R, "A") <> "" And Cells(R, "AN") < Cells(R, "BB") Then Cells(R, "AN") = Cells(R, "BB")
  5. Next R
  6. End Sub
複製代碼

作者: fangsc    時間: 2012-6-17 22:38

回復 2# register313

感謝指導.

請問LR不需要先做變數宣告嗎?
作者: register313    時間: 2012-6-17 22:49

回復 3# fangsc

變數不先定義的話,VBA自動會定義
根據資料的不同,有可能是integer, long, double, variant 的任意一個類型
所以强制自己定義變數才是好習慣

Option Explicit 強制聲明
如果不用此語法,則變數可不用定義直接使用
如果使用此語法,則變數必須定義後才能使用
作者: GBKEE    時間: 2012-6-18 07:55

本帖最後由 GBKEE 於 2012-6-18 08:00 編輯

回復 3# fangsc
寫程式要一定養成 用Option Explicit 強制宣告變數 的習慣
執行程式可以抓出,未宣告的變數,可避免你輸入相似的變數名稱,因而找不出錯誤哪裡.

回復 4# register313
變數不先定義的話,VBA自動會定義
變數不宣告型態   VBA會視為 Variant 資料型態
Variant 資料型態是所有沒被明確宣告為其他型態
作者: fangsc    時間: 2012-6-18 20:27

感謝2位的指導.
書上是有寫說Variant型態的變數可以省去要注意資料型態一致的麻煩,不過這樣的用法會浪費多餘的記憶空間.
養成好習慣還是可以避免許多麻煩.
受教了.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)