close

Chapter VBA

VBA006 英文字的大小寫轉換

Section

在前一單元中我們介紹如何把英文不論是大寫(“EXCEL MARCO”)、小寫(“excel marco”)全部轉換成英文單字每一個單字第一個英文字母大寫(“Excel Marco”),可是很多人得用函數即可,寫巨集實在太難了,物不超所值。

在這個單元我們將介紹一個在香港上班學生的問題,公司有項規定:

1.       英文字若全部大寫轉換為第一個字母大寫,其餘字母小寫。

2.       英文字若第一個字母大寫,其實字母小寫的字全部轉為小寫。

3.       英文字若是全部小寫,則將其改變成全部大寫。

Option Explicit

現在儲存格的英文字轉換成第一個字母大寫

註:Proper為工作表函數

使用時需要在前面加上「WorksheetFunction.

Sub Sample6()

但凡遇到錯誤,跳到「什麼也不做」標籤

On Error Goto DoNothing

WithEnd With之間、所有的「.」為首屬性或方法

也會以With之後的物件為本,應該可以使程式更精簡一些

With ActiveCell

   Select Case .Value

如果英文字大寫則換為第一個字母大寫

       Case Ucase(.Value)

           .Value=WorksheetFunction.proper(.Value)

如果英文字第一個字母大寫,其餄小寫,則轉換為小寫

       Case WorksheetFunction.proper(.Value)

           .Value=Lcase(.Value)

如果英文字小寫則換為大寫

       Case Lcase(.Value)

           .Value=Ucase(.Value)

如果其他狀況則換為字母大寫

       Case Else

           .Value=Ucase(.value)

   End Select

End With

什麼也不做

DoNothing:

End Sub

開啟一個空白活頁簿。

ALT+F11鍵,開啟並切換到VBA編輯器。

點取「插入 > 模組」指令。

輸入如下圖所示的程式碼(‘後面的說明文字可視需求決定是否要輸入)

image

關閉VBA編輯器視窗。

當我們框選B1B3儲存格再執行SAMPLE6巨集,則會出現如下圖對話方塊。

image


arrow
arrow

    錦子老師 發表在 痞客邦 留言(0) 人氣()