我有一些功能完善的代碼,但對我來說似乎很臃腫。我如何簡化這些代碼?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 –