2013-09-17 8 views
2

Я много искал для ответа на свою проблему, но не смог найти ничего, что помогло мне.excel selection изменен для определенного рабочего листа

Я хочу использовать Worksheet_SelectionChange` для определенного рабочего листа. Этот конкретный рабочий лист, который я хочу определить в коде.

Пример (этот пример не имеет смысла, я знаю, но это лучший способ показать мою проблему):

У меня есть три листа в моей книге: ws1, ws2, ws3.

ws1 и ws3 empty, ws2 имеет некоторые значения. Когда я открываю книгу, я ищу, какой лист не пуст. Это работает до сих пор.

Теперь, когда я обнаружил, что рабочий лист не пуст, я хочу установить Worksheet_SelectionChange для этого рабочего листа.

Как это сделать?

+0

Вы просто пытаетесь показать (первый) пустой лист? если это так, когда вы идентифицируете свой пустой лист, вы можете просто «активировать» его. – Jaycal

ответ

4

Поместите это в районе ThisWorkbook Код

Это даст вам имя листа, если клетки не являются пустыми, когда Вы выбираете ячейку в этом листе.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _ 
ByVal Target As Range) 
    If Application.WorksheetFunction.CountA(Sh.Cells) <> 0 Then 

     MsgBox Sh.Name & " is not blank" 

     With Sh 
      '~~> Insert code here which you want to run for that sheet 
     End With 
    End If 
End Sub 

Если вы не хотите идти этим путем, вам придется вводить код в соответствующую область кода листа. Код инжекции в области кода листа много раз обсуждался здесь в SO

+0

Большое спасибо, это было именно то, что я искал – reneton

Смежные вопросы