У меня есть код для копирования диапазона (D9: E31) со всем форматированием и границами, а также объединенными ячейками (D9: E9).Когда пользователь нажимает кнопку Диапазон (D9: E31) копируется в следующие доступные ячейки Диапазон (F9: G31), Диапазон (H9: I31) и т. Д.
Я разработал код для удаления скопированных ячеек в обратном порядке.Range (H9: 31), Range (F9: G31) ... Однако мои основные данные находятся в Range (D9: E31), поэтому их не следует удалять ни при каких обстоятельствах.
Как заставить мой код работать до столбца E. Как только он достигнет столбца E, он должен перестать работать, и кнопка не должна делать ничего, независимо от того, сколько раз она нажата.Я могу добавить предупреждение сам позже.
Я пытался Do Until
безуспешно.Однако мне не нужно выполнять цикл до столбца E. Мне нужно запускать VBA каждый раз, когда я нажимаю кнопку.Используя цикл, он будет удалять все до столбца E?Может быть, в этом случае следует использовать If
?Если следующая ячейка отсутствует в столбце E, запустить код?
Мой код:
Sub Remove()
With Worksheets("Price calculation")
'Do Until Columns(4)
lc = .Cells(9, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(9, lc - 0), .Cells(9, lc)).MergeArea.UnMerge
lc = .Cells(11, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(9, lc - 1), .Cells(31, lc)).ClearContents
.Range(.Cells(9, lc - 1), .Cells(31, lc)).Interior.ColorIndex = 2
.Range(.Cells(9, lc - 1), .Cells(31, lc)).Borders.LineStyle = xlNone
End With
End Sub