Excel宏将整个列更改为大写
我正在尝试更新工作簿,我必须将所有电子邮件从小写改为大写。 我对宏还不是很在行,但我想出了这个,但它需要永远运行。(只有约1k行) 我应该用些更好的吗Excel宏将整个列更改为大写,excel,vba,Excel,Vba,我正在尝试更新工作簿,我必须将所有电子邮件从小写改为大写。 我对宏还不是很在行,但我想出了这个,但它需要永远运行。(只有约1k行) 我应该用些更好的吗 tl;dr我需要将整个列的大小写改为大写。试试这个。循环遍历B列中的每个单元格,这就是它速度慢的原因 Sub Uppercase() ' Loop to cycle through each cell in the specified range. For Each x In Range("B1:B" & Range("B"
tl;dr我需要将整个列的大小写改为大写。试试这个。循环遍历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
根本不需要循环,这基本上可以立即解决:
Sub tgr()
With Range("B1", Cells(Rows.Count, "B").End(xlUp))
.Value = Evaluate("INDEX(UPPER(" & .Address(External:=True) & "),)")
End With
End Sub
一次完成整个范围:
Range("B:B") = [index(Upper(B:B),)]
很好,但是在选择中使用这样的功能更方便用户
Sub-ToUpper()
对于选择中的每个单元格
如果不是cell.has公式,那么
cell.Value=UCase(cell.Value)
如果结束
下一个
端接头
看起来大家都同意你的观点。但是说实话。。。我不知道那是怎么回事。你介意把背景放在后面吗?或者发布完成的代码?我喜欢这里宏的初级编码。。。但我正在努力学习。好吧,它会进入你的潜艇。或者,如果它是一次性的,只需将它弹出调试窗口(Excel中VB编辑器中的CTRL-G)并按enterOh,这就是全部代码。哈好啊这就是我所误解的。谢谢,这确实很快就解决了。如果距离长,这个距离循环仍然会很慢,上面的单短方法会更好。
Range("B:B") = [index(Upper(B:B),)]