其實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


目前只想到這樣啦!
有想到別的再補充!

 

arrow
arrow
    全站熱搜

    西裝皮老闆 發表在 痞客邦 留言(0) 人氣()