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


2015年7月21日 星期二

[EXCEL] 使用EXCEL VBA做分班篩選列印


若您的資料量大,但卻要篩選某些欄位來列印,光是點選篩選內容就會讓手掌泛紅腫脹,這時候就會想到,為何要把事情做得如此複雜。只好認命自救,EXCEL 的VBA最適合做這樣重覆的事情,如果你會錄製巨集,就錄一段,自己修改一下,若不會,就直接使用下列的程式碼:

Sub pclass()
'
' 篩選班級列印巨集
'
   Dim i
   For i = 1 To 16
    ActiveSheet.Range("$A$2:$E$200").AutoFilter Field:=2, Criteria1:=i
    ActiveSheet.PrintOut
   Next i
End Sub

說明:
1.建立新巨集,將以上程式碼貼上。
2.修改您的資料範圍(紅字的部份)。
3.修改要自動篩選的欄位(藍字的部份)。
4.修改要列印的數量(紫字的部份)。
5.執行巨集就可以了。

印表機記得要設定好,這樣每一張的格式都會一樣,GOOD LUCK!


2015年7月20日 星期一

在iis7.0建置classical asp+access環境


1.安裝 windows7 32bit IIS7
控制台 / 開啟或關閉windows功能
IIS / Web管理工具 / IIS主控台
IIS / WWW服務 / 應用程式開發功能 / ASP ASP.NET
2.IIS管理員
新增網站 esa
ASP / 啟用上層路徑
應用程式集區 傳統
3.修改目錄權限 完全控制
4.x64 Windows環境下IIS7使用ASP+Access資料庫問題
解決說明:64位元下的IIS7,預設不支援Access這類32bit的ODBC,要將相容選項打開
1.Application Pool--->Advanced Settings--->Enable 32-bit Applications 設為True
補充:
1.「C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp」,變更這個資料夾的使用權限,增加「Authenticated Users」這個使用者的使用權限為Full Control
2.注意*.mdb檔案的使用者權限

熱門文章