Макрос Excel для всего столбца в верхний регистр
Я пытаюсь обновить книгу, мне нужно изменить все письма со строчного на верхний регистр. Я еще не настолько хорошо разбираюсь в макросах, но я придумал этот, но чтобы запустить его, требуется вечность. (только около ~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 мне нужно изменить весь регистр столбцов на верхний регистр.
4 ответа:
Не нужен цикл вообще, это должно заботиться о нем в основном мгновенно:
Sub tgr() With Range("B1", Cells(Rows.Count, "B").End(xlUp)) .Value = Evaluate("INDEX(UPPER(" & .Address(External:=True) & "),)") End With End Sub
Попробуйте вместо этого. Вы проходите через каждую ячейку в столбце 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 ToUpper() Для каждой ячейки в выделении Если не клетка.HasFormula Тогда ячейка.Значение = UCase (ячейка.Значение) Конец, Если Следующий Конец Sub