我在查詢其他幫助來更改報告。我對VBA相當陌生,並且在Excel 2010中編寫了下面的代碼。快速背景 - 數據正在用SQL收集,然後由專有軟件生成以實現卓越。我期待通過突出顯示外部邊界來對動態數據集進行分組。數據集總是從B4開始,我已經在下面定義了。基本上,我創建了這個腳本,在B列中有一個「GroupSummary」值的時候突出顯示一個分組。分組結束於最後一行,任何時候有一個值「2」,後面是一個值「0」。在下面的例子中,分組將在3行在VBA中動態分組
結束例如:
ROW 1 "Group Summary" , "A" , "0"
ROW 2 "Summary" , "A" , "2"
ROW 3 "Summary" , "A" , "2"
ROW 4 "Summary" , "B" , "0"
我現在想更進一步藉此,並強調只有分組當上述條件得到滿足,所有的最後一列中的值是相同的。見下面的例子。分組應在第3行
ROW 1 "Group Summary" , "A" , "0"
ROW 2 "Summary" , "A" , "2"
ROW 3 "Summary" , "A" , "2"
ROW 4 "Summary" , "B" , "2"
ROW 5 "Summary" , "B" , "0"
這裏就結束了,是我已經寫的代碼:
Dim LastCol As Integer
Dim Z As Integer, StartRow As Integer, EndRow As Integer
LastCol = Range("B4").End(xlToRight).Column
Z = 5
Do
If Cells(Z, LastCol) = 0 And StartRow <> 0 Then
EndRow = Z - 1
Range(Cells(StartRow, 2), Cells(EndRow, LastCol - 2)).Select
With Selection
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeLeft).ColorIndex = 1
.Borders(xlEdgeRight).Weight = xlMedium
.Borders(xlEdgeRight).ColorIndex = 1
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeTop).ColorIndex = 1
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeBottom).ColorIndex = 1
End With
StartRow = 0
End If
If Cells(Z, 2) = "GroupSummary" Then
StartRow = Z
End If
Z = Z + 1
Loop Until Cells(Z, 2) = "" And Cells(Z - 1, 2) = ""
此代碼是否適合您? – barryleajo 2014-10-28 21:56:33
是的,但現在我想進一步提到它,並想知道是否有人可以提供幫助。 – user3746034 2014-10-29 04:04:02