1

何月であるかに基づいて編集されたときにセルを強調表示する小さなマクロがあります。このサブルーチンを列 D だけに発生させたいのですが、これを行う方法はありますか? コードは以下のとおりです。

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Month(Date)
Case Is = 1
Range(curCell).Interior.ColorIndex = 20
Case Is = 2
Range(curCell).Interior.ColorIndex = 24
Case Is = 3
Range(curCell).Interior.ColorIndex = 33
Case Is = 4
Range(curCell).Interior.ColorIndex = 18
Case Is = 5
Range(curCell).Interior.ColorIndex = 23
Case Is = 6
Range(curCell).Interior.ColorIndex = 45
Case Is = 7
Range(curCell).Interior.ColorIndex = 22
Case Is = 8
Range(curCell).Interior.ColorIndex = 38
Case Is = 9
Range(curCell).Interior.ColorIndex = 35
Case Is = 10
Range(curCell).Interior.ColorIndex = 31
Case Is = 11
Range(curCell).Interior.ColorIndex = 44
Case Is = 12
Range(curCell).Interior.ColorIndex = 48
End Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
curCell = ActiveCell.Address(Columns(0, 0))
End Sub
4

1 に答える 1

1

これを試すことができます:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    Set r = Application.Intersect(Target, Me.Columns("D"))
    If Not r Is Nothing Then
        ' proceed with r here instead of Target
        ' ...
    End If
End Sub

実は、あなたはまだ Target を正しく使用していないようです。変更が行われた範囲オブジェクトを提供します。そのcurCellは必要ありません。

于 2013-05-15T18:15:11.937 に答える