其實VBA算是很簡單的語言,自己看書與網路教學很容易上手,
對一般辦公室文書處理非常有幫助喔!
想像一下隔壁桌的阿姨還在一格一格整理資料時,
你按鈕壓一下就可以翹腳喝咖啡了!
上班空閒時花點時間,把日常工作上會用到的程式碼寫好,以後真的惠方便很多!
以下分享一些我最近比較常用的方法!
最基本的開啟刪除存檔關閉那些就不寫囉!
======================================優化/加速======================================
'通常放在程式碼最前端
'建議程式確定寫好再放置~不然跑到一半卡住時,Excel工作表可是連動都動不了喔
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual 'excel計算設定為手動
Application.ScreenUpdating = False '關閉螢幕更新
Application.DisplayStatusBar = False '停止顯示狀態欄
'程式尾端打開
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic 'excel計算設定為自動
Application.ScreenUpdating = True '打開螢幕更新
Application.DisplayStatusBar = True '顯示狀態欄
======================================找出某個儲存格======================================
Set WKS = ThisWorkbook.sheets(1)
Set Findcell = WKS.UsedRange.Find(what:="AAAA") '找出內容為"AAAA"的儲存格
AAAArow=Findcell.Row '取得儲存格位置
AAAAcolu=Findcell.Column
'AAAA在Cells(AAAArow,AAAAcolu)
'預防這個工作表內根本沒有AAAA導致程式出錯 通常會加檢查程式
Jflag = Findcell確認(Findcell, "AAAA")
If Jflag = 99 Then Exit Function
----------------------------------------------------------------------------------
Function Findcell確認(Findcell, Findname)
Jflag = 0
On Error Resume Next
If Findcell <> Findname Then
Jflag = 99
MsgBox ("找不到單字:" & Findname & ",請確認或洽程式人員!")
End If
On Error GoTo 0
Findcell確認 = Jflag
End Function
======================================數字轉英文======================================
'這串是直接從微軟網站copy來的 我覺得很好用!
'尤其是在需要儲存格範圍時 Range("A1:D10")這類得很方便
Function ConvertToLetter(iCol) As String
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(iCol / 27)
iRemainder = iCol - (iAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function
======================================數字/儲存格的處理======================================
Cells(1,1).NumberFormatLocal = "@" '儲存格設為文字格式
Format(Cells(1,1), ".00") '取小數點後兩位 0增加就多取幾位
InStr(Cells(1, 1), "@") '取得第一個@出現的位置 ex:123@56 則回傳值為4
Len(Cells(1,1)) '回傳內容長度 ex:123@56 則回傳值為3
目前只想到這樣啦!
有想到別的再補充!
留言列表