234,000 개의 데이터 행과 서식을 적용하는 매크로가 있습니다. 매크로는 실행하는 데 약 1 분이 걸립니다. 나는 가능한 한 시간을 줄이려고 노력하고있다.서식을 더 빨리 추가하는 방법
열 1이 변경 될 때마다 경계가 추가되고 두 번째 열 다음의 모든 데이터에는 각 행 사이에 경계선이 추가되어 색이 지정됩니다.
Sub FormatData()
Dim PrevScrnUpdate As Boolean
Dim TotalRows As Long
Dim TotalCols As Integer
Dim PrevCell As Range
Dim NextCell As Range
Dim CurrCell As Range
Dim i As Long
Dim StartTime As Double
StartTime = Timer
PrevScrnUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
TotalRows = Rows(ActiveSheet.Rows.Count).End(xlUp).row
TotalCols = Columns(ActiveSheet.Columns.Count).End(xlToLeft).Column
Range(Cells(1, 1), Cells(1, TotalCols)).Font.Bold = True
For i = 2 To TotalRows
Set NextCell = Cells(i + 1, 1)
Set CurrCell = Cells(i, 1)
Set PrevCell = Cells(i - 1, 1)
If CurrCell.Value <> NextCell.Value Then
Range(CurrCell, Cells(i, 2)).Borders(xlEdgeBottom).LineStyle = xlSolid
End If
If CurrCell.Value <> PrevCell.Value Then
Range(CurrCell, Cells(i, 2)).Borders(xlEdgeTop).LineStyle = xlSolid
End If
Range(Cells(i, 3), Cells(i, TotalCols)).BorderAround xlSolid
Range(Cells(i, 3), Cells(i, TotalCols)).Interior.Color = RGB(200, 65, 65)
Next
Application.ScreenUpdating = PrevScrnUpdate
Debug.Print Timer - StartTime
End Sub
편집 :
: 여기서 결과의 일례이다
이
매크로이다 : 여기
데이터의 예편집 2 : 배열로 시도했지만 속도가 향상되지 않습니다.
이 Excel 2007 이상입니까? 왜 조건부 서식을 사용하지 않습니까? – rene
Excel 2010에서는 열의 값이 변경 될 때마다 조건부 서식이 테두리를 추가 할 수 있다고 생각하지 않았습니다. – Ripster
@Ripster [It can] (http://stackoverflow.com/q/5194286/11683). – GSerg