2016-11-03 82 views
0

我已經使用以下工作表更改應用於單個單元格引用的VBA代碼,並用於根據數據驗證列表中的選擇調用宏。宏觸發的事件適用於活動單元的行。Excel VBA通​​過多個獨立的工作表更改調用單個宏

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Address(True, True) = "$H$2" Then 
    Select Case Target 
     Case "Yes" 
      Call StandardEntry 
     Case Else 
      'Do nothing 
    End Select 
End If 
End Sub 

我現在想能夠將此工作表更改事件由單個細胞在同一列中被觸發,產生活性細胞行內相同的事件,不影響任何其他行。相同的數據驗證已應用於列中的其他單元格。

我希望能夠幫助您編寫適當的代碼或調整上面的代碼以適合您的需要。

+0

'StandardEntry',你沒有顯示,將在這裏的解決方案的一部分,所以也許顯示它? –

+0

你的意思是你只是想在列H中的任何單元格被更改並且值爲「是」時調用'StandardEntry'?如果是這樣,可以將'如果Target.Address(True,True)=「$ H $ 2」Then「改爲'如果Target.Column = 8 Then'。 (但是,如果這就是你的意思,那麼在你的問題中「連續」這個詞是令人困惑的。) – YowE3K

+0

@ YowE3K是的,這正是我的意思,代碼更改完美。謝謝!我現在要編輯我的問題以消除混淆,然後將其添加爲答案。再次感謝。感謝您的協助。 – ManbyRiver

回答

1

謝謝@ YowE3K!

更改

If Target.Address(True, True) = "$H$2" Then 

If Target.Column = 8 Then 

的伎倆,是一個非常簡單的解決方案! Yeehar!

+1

不要忘記'Target'可以是一個多單元格區域,'Target.column'將​​返回更大範圍內的左上角單元格的列... –

+0

可以使用'Target.Cells.Count < > 1'或'For Each rng In Target','Dim rng As Range'和'If rng.Column = 8 Then'。 – user3819867

相關問題