Мне нужен быстрый код для очистки формата всех ячеек, которые пусты. Я написал этот код, но он слишком медленный. Есть ли способ сделать это быстрее?VBA Удалить формат из пустых ячеек в Excel
Sub removeFormatEmpty()
'Declaration of variables
Dim sheet As Worksheet
Dim rcell As Range
For Each sheet In Worksheets
sheet.Activate
'Cells.UnMerge
For Each rcell In sheet.UsedRange.Cells
If rcell.MergeCells = True Then
rcell.UnMerge
End If
If rcell.Value = "" Then
rcell.ClearFormats
End If
Next rcell
Next sheet
End Sub
Этот код работает, однако он медленный, так как ему нужно идти по ячейке. Есть ли способ выбрать весь диапазон, кроме ячеек с содержимым?
Обновление: Благодарим вас за комментарии bobajob и jordan. Я смог обновить код и сделать его намного быстрее и оптимизирован. Это новый код:
Sub removeFormatEmptyImproved()
Dim sheet As Worksheet
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For Each sheet In Worksheets
'sheet.Activate
sheet.UsedRange.SpecialCells(xlCellTypeBlanks).ClearFormats
Next sheet
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Так что теперь оно решено.
Попробуйте 'sheet.SpecialCells (xlCellTypeBlanks)' – bobajob
Вам не нужно 'Activate' листа, чтобы внести изменения в нем, а также использовать' Application.ScreenUpdating = False' и 'Application.Calculation = xlCalculationManual' в начале юга для ускорения работы, но не забудьте вернуть их обратно в' True' и 'xlCalculationAutomatic', соответственно, в конце вашего подкаталога – Jordan