私は約12枚のブックを持っています。条件付き書式設定とデータ検証を、2から6のシートのEからYへ交互に行おうとしています。Excel VBAループをいくつかのシートに渡しますが、すべてではありません
検証と書式設定は完全に機能していますが、シートループによって多くの問題が生じます。
ループはシート1に適用され続けますが、ヒットしないシートは変更されますが、シートが2から6までの各シートに適用されるとは限りません。
私は迷っています。コードの一部は、マクロの記録機能で作ったので、私はそれが非効率的とかさばるだが、ここのコードだと確信していました:
Sub ListCF()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim cl As Variant
Dim Row As Variant
Dim ws As Worksheet
For i = 2 To 6
With ThisWorkbook.Worksheets(i)
Worksheets(i).Activate
Cells.Select
Selection.FormatConditions.Delete
Selection.Validation.Delete
Selection.NumberFormat = "General"
For j = 5 To 23 Step 2
Range(Cells(2, j), Cells(50, j)).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Reference!$A$2:$A$50"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next j
For k = 6 To 24 Step 2
cl = Mid(Cells(2, k).Address, 2, 1)
Range("$" & cl & 2, "$" & cl & 50).Select
Selection.NumberFormat = "m/d/yyyy"
'With Range(Cells(2, k), Cells(50, k))
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$" & cl & 2 & ">(TODAY()-60)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16776961
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$" & cl & 2 & "<(TODAY()-60)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = False
.Italic = False
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
'End With
Range(Cells(2, k), Cells(50, k)).Select
Selection.NumberFormat = "m/d/yyyy"
Next k
End With
Next i
End Sub
お持ちすぎ '多くのSELECT'と' Selection' –
'ThisWorkbook.Worksheets(I)'で - あなたがすべてでループ –
'ワークシートでこれを使用していません( i)は、左から順にタブの順番で数えていくi番目のワークシートを指します。それはあなたが期待している注文ですか?または、 "Sheet2"、 "Sheet3"、 "Sheet4"、 "Sheet5"、 "Sheet6"という名前のシートにアクセスしようとしていますか? – YowE3K