這只是一個記錄宏‘排序’部分與板聲明爲DIM:
Dim MySheet As Worksheet: Set MySheet = Sheets("Sheet1")
MySheet.Sort.SortFields.Clear
MySheet.Sort.SortFields.Add _
Key:=Range("A1"), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
With MySheet.Sort
.SetRange Range("A1:A10")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
現在,關於分組該cells.You可以在此基礎上每一個「組」申報範圍的價值,就像在一個名爲範圍(Ctrl+F3)
:
For i = 1 To MySheet.Rows.Count
Range_Start = "A" & i 'Store the begining of the range
If Range("A" & i) <> Range("A" & i - 1) Then
Range_End = "A" & i 'Store the begining of the range
MyRange = MySheet.Range(Range_Start & ":" & Range_End)
ActiveWorkbook.Names.Add Name:="range" & ActiveWorkbook.Names.Count + 1, RefersTo:=MyRange
Next i
Although, I think the storing of the Range_Start may need some fine-tunning
無論如何。最好的方法是使用Record
功能。然後,通過聲明變量(s),並且只有在編寫循環之後調整代碼。根據你的問題,我不清楚你是什麼意思的分組和你需要它。乾杯!
爲什麼你不嘗試你想做的事情,讓我們知道它是否有效,或者如果你有關於如何改進這種方法的問題。如果您先發布自己的代碼,然後再尋求幫助,您可能會得到更好的建議。 –
要將它們組合在一起,您必須先將它們排序。 –