2015年7月24日 星期五

[EXCEL] 使用Excel VBA 班號批次修改取代

通常系統轉出來的檔案,會如下圖,但國字的班級怎麼看都很難再處理,最好的方法就是轉成數字,例如:七年一班就轉成 '701'.....這些重覆性的工作,當然交給VBA來處理。


(1).建立一個如圖的Excel畫面

(2). 建立兩個按鈕副程式
Private Sub cmdReplaceBath_Click()
    Call 班號取代
End Sub

Private Sub CommandButton1_Click()
With Application.FileDialog(msoFileDialogOpen)
   .AllowMultiSelect = True
   .Show
    Cells(2, 1) = .SelectedItems(1)
     MsgBox .SelectedItems(1)
End With
End Sub

(3).建立一個VBA巨集如以下:
Sub 班號取代()

    Dim nw As String   '參數設定的檔案名稱
    Dim s, r                    '要被取代的字串 ,取代過的字串    
    nw = Excel.ActiveWorkbook.Name
    Workbooks.Open Filename:=Cells(2, 1)    
    i = 2    
    While Windows(nw).ActiveSheet.Cells(i, 2) <> ""        
        s = Windows(nw).ActiveSheet.Cells(i, 2)        
        r = Windows(nw).ActiveSheet.Cells(i, 3)        
        Cells.Replace What:=s, Replacement:=r        
        i = i + 1    
    Wend
    MsgBox "取代完成,請查看結果"

End Sub


沒有留言: