将所有字符大写Excel VBA

时间:2015-06-16 19:47:36

标签: vba excel-vba access-vba capitalization excel

这应该将每个角色都大写,但我得到type mismatch错误。 它适用于具有类似数据的其他工作表,但没有理由它给我不匹配错误。请帮忙

Private Sub allUpper(ByRef sh As Worksheet)
        Dim arr As Variant, i As Long, j As Long

        If WorksheetFunction.CountA(sh.UsedRange) > 0 Then
            arr = sh.UsedRange  'one interaction with the sheet
            For i = 2 To UBound(arr, 1)         'each "row"
                For j = 1 To UBound(arr, 2)     'each "col"
                    arr(i, j) = UCase(RTrim(Replace(arr(i, j), Chr(10), vbNullString)))
                Next
            Next
            sh.UsedRange = arr  'second interaction with the sheet
        End If
    End Sub

1 个答案:

答案 0 :(得分:0)

您的数据中某处可能有错误(#N/A等)。

您可以为此添加检查以防止运行时错误:

If Not IsError(arr(i, j)) Then
    arr(i, j) = UCase(RTrim(Replace(arr(i, j), Chr(10), vbNullString)))
End If