我有一些功能完善的代码,但对我来说似乎很臃肿。我如何简化这些代码?Excel Inelegant代码,有助于优化
Sub RowDiv1()
Dim R1 As Range
Dim R2 As Range
Dim R3 As Range
Dim R4 As Range
Dim R5 As Range
Dim R6 As Range
Dim R7 As Range
Dim R8 As Range
With Worksheets("Working Sheet 1")
Set R1 = .Range(.Range("G6000").End(xlUp), .Range("AH6000").End(xlUp))
With R1
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
Set R2 = .Range(.Range("G6000").End(xlUp), .Range("AD6000").End(xlUp))
With R2
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
Set R3 = .Range(.Range("G6000").End(xlUp), .Range("Z6000").End(xlUp))
With R3
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
Set R4 = .Range(.Range("G6000").End(xlUp), .Range("V6000").End(xlUp))
With R4
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
Set R5 = .Range(.Range("G6000").End(xlUp), .Range("R6000").End(xlUp))
With R5
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
Set R6 = .Range(.Range("G6000").End(xlUp), .Range("N6000").End(xlUp))
With R6
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
Set R7 = .Range(.Range("G6000").End(xlUp), .Range("J6000").End(xlUp))
With R7
.Cells(1).Offset(1, -4).Resize(.Rows.Count, .Columns.Count) = .Value
.ClearContents
End With
End With
End Sub
正如我所说,这段代码工作正常,但它似乎很长,我试图实现。
告诉我们你的代码应该做什么,所以我们能够告诉你一种替代方法 –
**你认为可以改进的工作代码**,请参阅[codereview.se]。 – jonrsharpe
您可能会在这里找到一些指示:http://www.excelitems.com/2010/12/optimize-vba-code-for-faster-macros.html –