|
こんにちは
F列というか、A列からの連続した範囲に対応しておきました。
判定対象列はそのままB列としてあります。
その列位置も変更するのでしたら、「"=IF(B1<>0,B1,"""")"」の部分を適宜変更して下さい。
Sub test2()
Dim s As Range
Dim sh As Worksheet
Dim c As Long
Set sh = Worksheets("Sheet1")
Set s = sh.Range("A1").CurrentRegion
c = s.Columns.Count
With s.Offset(, c).Columns(1)
.Formula = "=IF(B1<>0,B1,"""")"
.Value = .Value
s.Resize(, c + 1).Sort _
Key1:=sh.Range("A2").Offset(, c), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, _
DataOption1:=xlSortNormal
Intersect(s, .SpecialCells( _
xlCellTypeConstants).EntireRow).Sort _
Key1:=sh.Range("A2"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, _
DataOption1:=xlSortNormal
Intersect(s, .SpecialCells( _
xlCellTypeBlanks).EntireRow).Sort _
Key1:=sh.Range("A2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, _
DataOption1:=xlSortNormal
.ClearContents
End With
End Sub
|
|