0

次のコードをコンパイルしました。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("S3")) Is Nothing Then
    Select Case Range("S3")
        Case "Complete": Sample
        Case "In Progress": InProgress
    End Select
End If
End Sub

このワークシートの変更の主な機能は、 cell からドロップダウン リストを読み取るcompleteことです。列に一連のドロップダウン リストがあり、すべてについてルーチンを実行する必要がありますが、特定の列で範囲全体を選択するのが困難です。in progressS3

4

1 に答える 1

1

列全体を選択するためにこれを試すことができます:

Sheets(1).Range("S:S")

次に、完全なコード:

'-- you can find last used row of your column and used that as well
'-- Dim LastRow as Long 
'-- LastRow = Range("S3").Rows.Count
'-- If Not Intersect(Target, Range("S3").Resize(LastRow)) Is Nothing Then
Private Sub Worksheet_Change(ByVal Target As Range) 
  If Not Intersect(Target, Range("S:S")) Is Nothing Then
    '-- change to proper letter case as if the case don't match then case fails..
    Select Case StrConv(Target.Value, vbProperCase)
      Case "Complete": Sample
      Case "In Progress": InProgress '-- not sure if you need to remove the space
    End Select
  End If
End Sub
于 2013-01-16T13:32:47.513 に答える