返回列表 上一主題 發帖

[發問] 指定儲存格文字轉大寫

引用G大大的寫法~ 自己改一改就好了~
  1. Sub uppera() '全部大寫
  2.     Dim E As Range, Rng As Range
  3.     If TypeName(Selection) <> "Range" Then Exit Sub '不是Range(儲存格)不往下執行程式
  4.     If Selection.Count = 1 And Selection(1) = "" Then Exit Sub  '選擇1儲存格且為空白時不往下執行程式
  5.     For Each E In Selection.SpecialCells(xlCellTypeConstants)

  6.             E.Value = UCase(E)                          '全部轉換為大寫

  7.             '**: Mid(E, 1, 1)-> 從第1個字元起讀入一個字元的字串
  8.             '**" Mid(E, 2) -> 從第2個字元起讀入全部的字串

  9.     Next
  10. End Sub
  11. Sub upperaf()  '第一個字大寫


  12.     Dim E As Range, Rng As Range
  13.     If TypeName(Selection) <> "Range" Then Exit Sub '不是Range(儲存格)不往下執行程式
  14.     If Selection.Count = 1 And Selection(1) = "" Then Exit Sub  '選擇1儲存格且為空白時不往下執行程式
  15.     For Each E In Selection.SpecialCells(xlCellTypeConstants)

  16.             E.Value = UCase(Mid(E, 1, 1)) & LCase(Mid(E, 2))  '轉換第1個字元為大寫
  17.             '**: Mid(E, 1, 1)-> 從第1個字元起讀入一個字元的字串
  18.             '**" Mid(E, 2) -> 從第2個字元起讀入全部的字串

  19.     Next
  20. End Sub
複製代碼
回復 3# PJChen
學習才能提升自己

TOP

回復 3# PJChen

再引用G大大的寫法~ 自己改一下~
程式設計前要先分析一下想要的結果是什麼~ 再怎麼來寫~
依您需要的東西~
按下任一個按鈕時~ 不管是開新檔或是執行該檔內的內容~ 就進行字的大寫調整
因此用一個IF 來判斷~ 是要執行該檔案還是執行新開的檔案
所以加了一個打開EXCEL的指令,判斷是不是要開檔案,
來完成最後的結果~
  1. Sub uppera() '全部大寫
  2. patch = Application.GetOpenFilename("Microsoft Excel 活頁簿 (*.xls), *.xls")
  3. If patch = False Then
  4.     Dim E As Range, Rng As Range
  5.     If TypeName(Selection) <> "Range" Then Exit Sub '不是Range(儲存格)不往下執行程式
  6.     If Selection.Count = 1 And Selection(1) = "" Then Exit Sub  '選擇1儲存格且為空白時不往下執行程式
  7.     For Each E In Selection.SpecialCells(xlCellTypeConstants)
  8.             E.Value = UCase(E)                          '全部轉換為大寫
  9.             '**: Mid(E, 1, 1)-> 從第1個字元起讀入一個字元的字串
  10.             '**" Mid(E, 2) -> 從第2個字元起讀入全部的字串
  11.     Next
  12. Else
  13.     With Workbooks.Open(patch)
  14.         For Each E In .Sheets("工作表1").Range("A:C")
  15.           E.Value = UCase(E)
  16.         Next
  17.     End With
  18. End If

  19. End Sub
  20. Sub upperaf()  '第一個字大寫
  21. patch = Application.GetOpenFilename("Microsoft Excel 活頁簿 (*.xls), *.xls")
  22. If patch = False Then
  23.     Dim E As Range, Rng As Range
  24.     If TypeName(Selection) <> "Range" Then Exit Sub '不是Range(儲存格)不往下執行程式
  25.     If Selection.Count = 1 And Selection(1) = "" Then Exit Sub  '選擇1儲存格且為空白時不往下執行程式
  26.     For Each E In Selection.SpecialCells(xlCellTypeConstants)
  27.             E.Value = UCase(Mid(E, 1, 1)) & LCase(Mid(E, 2))  '轉換第1個字元為大寫                          '全部轉換為大寫
  28.             '**: Mid(E, 1, 1)-> 從第1個字元起讀入一個字元的字串
  29.             '**" Mid(E, 2) -> 從第2個字元起讀入全部的字串
  30.     Next
  31. Else
  32.     With Workbooks.Open(patch)
  33.         For Each E In .Sheets("工作表1").Range("A:C")
  34.           E.Value = UCase(Mid(E, 1, 1)) & LCase(Mid(E, 2))  '轉換第1個字元為大寫
  35.         Next
  36.     End With
  37. End If

  38. End Sub
複製代碼
學習才能提升自己

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題