Я использовал код, приведенный ниже, из jonhaus.hubpages.com, чтобы удалить пустые столбцы, которые у меня есть.Оптимизация/оптимизация Excel VBA для удаления пустых столбцов
'Delete empty columns
Dim c As Integer
c = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
Do Until c = 0
If WorksheetFunction.CountA(Columns(c)) = 0 Then
Columns(c).Delete
End If
c = c - 1
Loop
Однако, как я уже писал в VBA, это стало своего рода раздутой и медленно ... Я пытаюсь оптимизировать и оптимизировать свой код, исключающих петли, копирование/паст и т.д.
У вас есть предложения по коду, которые будут делать то же самое (удаление всех столбцов emtpy) БЕЗ необходимости в циклах «Do Until/If/End If/Loop»?
Ссылки: http://jonhaus.hubpages.com/hub/Excel-VBA-Delete-Blank-Blank-Columns http://www.ozgrid.com/VBA/SpeedingUpVBACode.htm
Просто подумайте, но вместо того, чтобы делать итеративный '.Delete' внутри цикла, вы можете создать список столбцов для удаления, а затем удалить их все в одном '.Delete', вне цикла. Другими очевидными улучшениями являются отключить' Application.ScreenUpdating' и установить 'Application.Calculation = xlManual' * в течение * времени выполнения. (Не забудьте восстановить их нормальные функциональные возможности в конце подпрограммы , –