这应该将每个角色都大写,但我得到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
答案 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