これが答えではありません。
@Shai私は試してより良い結果を得るために遊んできましたが、フォーマットとフィルタリングのための私のコードは以下のようになっています。フィルターは 'VIP'行を1、2、 3 ...
With Worksheets("Burn")
Columns("D:D").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.Color = 7039480
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 8109667
.TintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlTextString, String:="VIP", _
TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16711681
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Add _
Key:=Range("D14"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Add(_
Range("D14"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
Color = RGB(0, 0, 0)
With ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
そして、これは私が「VIP」や空白が割り当てられていない限り、新しい行のためのより高い値を作成するために使用していたコードです:
If IsNumeric("D15") Then
MaxVal1 = Application.WorksheetFunction.Max(wk2.Range("D15:D1000"))
Range("D15").Value = MaxVal1 + 1
End If
出典
2016-11-17 11:27:30
Tom
は何のエラー、それは場合 –
を与えません'Selection.FormatConditions(1)'はエラーをスローし、その選択に書式条件が含まれているかどうかをチェックする必要があります。 eady。そうでない場合は、最初に追加する必要があります。 Btw:あなたは**エラーが投げられたことを言及すべきです。そして、あなたは '選択 'の使用と'選択 'の操作を避けるべきです。代わりにオブジェクト変数を使用する必要があります。 –
残りのコードは、行を別のシートに移動して、フォーマットを中断させるため、初期フォーマットがない行に移動する場合に問題になりますか?エラーは「実行時エラー '438':オブジェクトがこのプロパティまたはメソッドをサポートしていません」 – Tom