【发布时间】:2018-12-27 10:17:27
【问题描述】:
我有一个代码用于复制 Range(D9:E31) 的所有格式和边框,以及合并的单元格 (D9:E9)。一旦用户按下按钮 Range(D9:E31) 被复制到下一个可用单元格 Range(F9:G31)、Range(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
【问题讨论】: