我正在尝试更新工作簿,我必须将所有电子邮件从小写更改为大写。 我对宏还不是那么精明,但我想出了这个,但它需要永远运行。 (只有约1k行)。
Sub Uppercase()
' Loop to cycle through each cell in the specified range.
For Each x In Range("B:B")
' Change the text in the column to uppercase letters.
x.Value = UCase(x.Value)
Next
End Sub
我应该使用更好的东西吗?
tl; dr我需要将整个列的大小写更改为大写。
答案 0 :(得分:3)
根本不需要循环,这应该基本上立即处理:
Sub tgr()
With Range("B1", Cells(Rows.Count, "B").End(xlUp))
.Value = Evaluate("INDEX(UPPER(" & .Address(External:=True) & "),)")
End With
End Sub
答案 1 :(得分:2)
立即完成整个范围:
Range("B:B") = [index(Upper(B:B),)]
答案 2 :(得分:0)
试试这个。你循环遍历B列中的每个单元格,这就是为什么它很慢。
Sub Uppercase()
' Loop to cycle through each cell in the specified range.
For Each x In Range("B1:B" & Range("B" & Rows.Count).End(xlUp).Row))
' Change the text in the column to uppercase letters.
x.Value = UCase(x.Value)
Next
End Sub
答案 3 :(得分:0)
很好,但在Selection上使用这样的功能更加用户友好: (注意:任何人都可以修复此编辑!!!)
Sub ToUpper() 对于选择中的每个单元格 如果不是cell.HasFormula然后 cell.Value = UCase(cell.Value) 万一 下一个 结束子