Board logo

標題: [發問] VBA_如何簡化此程式碼。謝謝! [打印本頁]

作者: jukom    時間: 2015-11-25 10:12     標題: VBA_如何簡化此程式碼。謝謝!

小弟本版首次提問,請大大們賜教
程式碼如下
Sub test()

    Sheets("aaa").Select
    Range("A1").Select
    k = Range(Selection, Selection.End(xlDown)).Count            '計算A欄位筆數

    For ii = 2 To k
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "1", "一課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "2", "二課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "3", "三課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "4", "四課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "5", "五課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "6", "A課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "7", "B課")
    Range("P" & ii) = VBA.Replace(Range("P" & ii), "8", "C課")
    Next ii                                                                                                      '如果 P欄的數值符合1,則取代為"一課";2則為"二課",以此類推

  End Sub

簡化需求的原因:萬一下次不只8筆,20筆VBA程式碼不就"漏漏長"了 ><

以上 感恩並學習   Jukom
作者: c_c_lai    時間: 2015-11-25 10:37

小弟本版首次提問,請大大們賜教
程式碼如下
Sub test()

    Sheets("aaa").Select
    Range("A1"). ...
jukom 發表於 2015-11-25 10:12

有點不解你的 Range("P" & ii) 內容直到底是什麼?
作者: jukom    時間: 2015-11-25 11:00

有點不解你的 Range("P" & ii) 內容直到底是什麼?
c_c_lai 發表於 2015-11-25 10:37


Range("P" &ii)內容的值是1~8的變數 (這個部份是ERP系統自行產生的), 目前是1~8,
對應的關係如下
1  一課
2  二課
3  三課
4  四課
5  五課
6  A課
7  B課
8  C課

以上 感謝 Jukom
作者: 准提部林    時間: 2015-11-25 11:30

Dim Arr,i%
Arr = Array("一", "二", "三", "四", "五", "人事", "會計", "業務")
For i = 0 To UBound(Arr)
  [A:A].Replace i + 1, Arr(i) & "課", Lookat:=xlWhole
Next
作者: jukom    時間: 2015-11-25 11:36

Dim Arr,i%
Arr = Array("一", "二", "三", "四", "五", "人事", "會計", "業務")
For i = 0 To UBound(A ...
准提部林 發表於 2015-11-25 11:30


感謝准提部林大大, 原來是要用 UBound, 懂了懂了 ><




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