VBA Excel - 解决从字段中删除文本时出现的错误 13
VBA Excel - Resolving Error 13 when deleting text from a field
传播sheet我正在为工作中的项目进行编辑。 sheet 在第 1、3、4 和 5 列中使用字符串值。多个人将访问此 sheet 因此为了保持整洁的外观,我将 sheet 设置为大写输入时每一列中的值。
Dim letter as String
Select Case Target.Column
Case Is = 1, 3, 4, 5
Application.EnableEvents = False
letter = Target.Value
letter = UCase(letter)
Target.Value = letter
End Select
Application.EnableEvents = True
这很好用,除非您拖动 select 多个字段进行删除。它 returns 运行-time error 13 我知道这是从字母字符串变成 " " 并且程序不能大写空白字符串。
如果字母字符串为空,我想不出如何绕过这个 Select。我花了很多时间寻找答案,但似乎找不到适用于这种情况的答案。任何输入表示赞赏。谢谢
尝试使用 if 语句来测试空字符串
Dim letter as String
Select Case Target.Column
Case Is = 1, 3, 4, 5
Application.EnableEvents = False
letter = Target.Value
If Len(letter) > 0 then
letter = UCase(letter)
Target.Value = letter
Else
Target.Value = letter
End IF
End Select
Application.EnableEvents = True
正如我在评论中提到的,您的问题不在 UCase 行中。
试试这个:
Dim letter as String
Dim cell As Variant
Application.EnableEvents = False
For each cell in Target
Select Case cell.column
Case Is = 1, 3, 4, 5
Cell.Value = UCase(Cell.Value)
End Select
Next cell
Application.EnableEvents = True
传播sheet我正在为工作中的项目进行编辑。 sheet 在第 1、3、4 和 5 列中使用字符串值。多个人将访问此 sheet 因此为了保持整洁的外观,我将 sheet 设置为大写输入时每一列中的值。
Dim letter as String
Select Case Target.Column
Case Is = 1, 3, 4, 5
Application.EnableEvents = False
letter = Target.Value
letter = UCase(letter)
Target.Value = letter
End Select
Application.EnableEvents = True
这很好用,除非您拖动 select 多个字段进行删除。它 returns 运行-time error 13 我知道这是从字母字符串变成 " " 并且程序不能大写空白字符串。
如果字母字符串为空,我想不出如何绕过这个 Select。我花了很多时间寻找答案,但似乎找不到适用于这种情况的答案。任何输入表示赞赏。谢谢
尝试使用 if 语句来测试空字符串
Dim letter as String
Select Case Target.Column
Case Is = 1, 3, 4, 5
Application.EnableEvents = False
letter = Target.Value
If Len(letter) > 0 then
letter = UCase(letter)
Target.Value = letter
Else
Target.Value = letter
End IF
End Select
Application.EnableEvents = True
正如我在评论中提到的,您的问题不在 UCase 行中。
试试这个:
Dim letter as String
Dim cell As Variant
Application.EnableEvents = False
For each cell in Target
Select Case cell.column
Case Is = 1, 3, 4, 5
Cell.Value = UCase(Cell.Value)
End Select
Next cell
Application.EnableEvents = True