私はSiddharth Routのコードを選択した列を大文字にする次のスレッドが、私はいくつかの範囲内の式を持っているセルを持つ列でそれを使用したときにエラー "13" MISMATCHに遭遇した。
Excel VBA - ダブルクリックで列内の選択されたすべてのセルを大文字にする
上記のリンクからの式に基づかない列データを処理したコードは次のとおりです。
Sub ChangeToUpper()
Dim rng As Range
"~~> Check if what the user selected is a valid range
If TypeName(Selection) <> "Range" Then
MsgBox "Select a range first."
Exit Sub
End If
Set rng = Selection
rng = WorksheetFunction.Transpose(Split(UCase(Join( _
WorksheetFunction.Transpose(rng), vbBack)), vbBack))
End Sub
フォーラムを検索しましたが、詳細が見つかりませんでしたこれに関連しています。だから私はそれをグーグルし、Mr.Excelはこのコードを持っていたが、エラーメッセージからすべてを大文字にしたときにまだエラー "13"を出した。このエラーを回避する方法はありますか?
これがMr.Excelのコードです。
Sub MyUpperCase()
Application.ScreenUpdating = False
Dim cell As Range
For Each cell In Range("$A$1:" & Range("$A$1").SpecialCells(xlLastCell).Address)
If Len(cell) > 0 Then cell = UCase(cell)
Next cell
Application.ScreenUpdating = True
End Sub
回答:
回答№1は1Cellに数式やエラーがあるかどうかを確認し、そうである場合は無視します。
Sub MyUpperCase()
Application.ScreenUpdating = False
Dim cell As Range
For Each cell In Range("$A$1:" & Range("$A$1").SpecialCells(xlLastCell).Address)
"/ Exclude errors
If Not IsError(cell) Then
If Len(cell) > 0 And Not cell.HasFormula Then
cell = UCase(cell)
End If
End If
Next cell
Application.ScreenUpdating = True
End Sub