- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
5#
發表於 2012-4-6 14:14
| 只看該作者
回復 3# PJChen
再引用G大大的寫法~ 自己改一下~
程式設計前要先分析一下想要的結果是什麼~ 再怎麼來寫~
依您需要的東西~
按下任一個按鈕時~ 不管是開新檔或是執行該檔內的內容~ 就進行字的大寫調整
因此用一個IF 來判斷~ 是要執行該檔案還是執行新開的檔案
所以加了一個打開EXCEL的指令,判斷是不是要開檔案,
來完成最後的結果~- Sub uppera() '全部大寫
- patch = Application.GetOpenFilename("Microsoft Excel 活頁簿 (*.xls), *.xls")
- If patch = False Then
- Dim E As Range, Rng As Range
- If TypeName(Selection) <> "Range" Then Exit Sub '不是Range(儲存格)不往下執行程式
- If Selection.Count = 1 And Selection(1) = "" Then Exit Sub '選擇1儲存格且為空白時不往下執行程式
- For Each E In Selection.SpecialCells(xlCellTypeConstants)
- E.Value = UCase(E) '全部轉換為大寫
- '**: Mid(E, 1, 1)-> 從第1個字元起讀入一個字元的字串
- '**" Mid(E, 2) -> 從第2個字元起讀入全部的字串
- Next
- Else
- With Workbooks.Open(patch)
- For Each E In .Sheets("工作表1").Range("A:C")
- E.Value = UCase(E)
- Next
- End With
- End If
- End Sub
- Sub upperaf() '第一個字大寫
- patch = Application.GetOpenFilename("Microsoft Excel 活頁簿 (*.xls), *.xls")
- If patch = False Then
- Dim E As Range, Rng As Range
- If TypeName(Selection) <> "Range" Then Exit Sub '不是Range(儲存格)不往下執行程式
- If Selection.Count = 1 And Selection(1) = "" Then Exit Sub '選擇1儲存格且為空白時不往下執行程式
- For Each E In Selection.SpecialCells(xlCellTypeConstants)
- E.Value = UCase(Mid(E, 1, 1)) & LCase(Mid(E, 2)) '轉換第1個字元為大寫 '全部轉換為大寫
- '**: Mid(E, 1, 1)-> 從第1個字元起讀入一個字元的字串
- '**" Mid(E, 2) -> 從第2個字元起讀入全部的字串
- Next
- Else
- With Workbooks.Open(patch)
- For Each E In .Sheets("工作表1").Range("A:C")
- E.Value = UCase(Mid(E, 1, 1)) & LCase(Mid(E, 2)) '轉換第1個字元為大寫
- Next
- End With
- End If
- End Sub
複製代碼 |
|