前回の支出レポートと最新の支出レポートを比較するマクロを作成しようとしています。マクロは、前のレポートの行からデータを引き出し、まったく同じデータを含む行を探して、両方の行を(以前のレポートと最新のレポートで)強調表示して一致があることを示します。これにより、現在のレポートと以前のレポートの両方で不一致が強調表示され、不一致が意図されているかどうか(ドキュメントでサポートされるかどうか)を確認します。次のようにRun-Timneエラー '1004':セルの強調表示範囲
私が書いたコードは次のとおりです。
Dim CPEAR As String
Dim PPEAR As String
Dim CL As Integer
Dim PL As Integer
Dim DL As Integer
Sub KDPM()
CPEAR = InputBox("Enter Current Pay Cycle (MM/DD/YYYY)", "Current Pay Cycle", , 50, 50)
CPEAR = CDate(CPEAR)
PPEAR = InputBox("Enter Previous Pay Cycle (MM/DD/YYYY)", "Previous Pay Cycle", , 50, 50)
PPEAR = CDate(PPEAR)
PL = 2
Do While Worksheets("PreviousPEAR").Cells(PL, 2).Value = 1
If Worksheets("PreviousPEAR").Cells(PL, 6).Value = PPEAR Then
CL = 2
Do While Worksheets("CurrentPEAR").Cells(CL, 2).Value = 1
If Worksheets("CurrentPEAR").Cells(CL, 2).Interior.ColorIndex <> 6 Then
If Worksheets("PreviousPEAR").Cells(PL, 3).Value = Worksheets("CurrentPEAR").Cells(CL, 3) Then
If Worksheets("PreviousPEAR").Cells(PL, 4).Value = Worksheets("CurrentPEAR").Cells(CL, 4) Then
If Worksheets("PreviousPEAR").Cells(PL, 7).Value = Worksheets("CurrentPEAR").Cells(CL, 7) Then
If Worksheets("PreviousPEAR").Cells(PL, 12).Value = Worksheets("CurrentPEAR").Cells(CL, 12) Then
If Worksheets("PreviousPEAR").Cells(PL, 14).Value = Worksheets("CurrentPEAR").Cells(CL, 14) Then
Worksheets("CurrentPEAR").Range(Cells(CL, 1), Cells(CL, 21)).Interior.ColorIndex = 6
Worksheets("PreviousPEAR").Range(Cells(PL, 1), Cells(PL, 21)).Interior.ColorIndex = 6
Exit Do
End If
End If
End If
End If
End If
End If
CL = CL + 1
Loop
End If
PL = PL + 1
Loop
End Sub
私のデータの最初の4行を正常に動作するようだが、それはランタイムエラーに当たります。何か案は?
ご協力いただきありがとうございます。
Worksheets("PreviousPEAR").Range(Worksheets("PreviousPEAR").Cells(PL, 1), Worksheets("PreviousPEAR").Cells(PL, 21)).Interior.ColorIndex = 6
これはあなたのすでにとunwieldlyれます:@BruceWayneはコメントで言及したようあなたが範囲を構築しているとき
どの行がエラーをスローしますか? – user3598756
'Cells()'の**すべての**インスタンスの前にワークシートを追加する必要があります。たとえば、 '.Interior.ColorIndex'行を確認してください。そこにワークシートを追加してください。 – BruceWayne
[矢印コードを平らにする](https://blog.codinghorror.com/flattening-arrow-code/)<〜 –