В конечном счете, я пытаюсь выделить ячейки, когда фокус удаляется от книги.Как передать переменные между листом и книгой?
Вот мой код (в ThisWorkbook
):
Public s As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
s = Selection
End Sub
Private Sub Workbook_Deactivate()
s.Interior.ColorIndex = xlColorIndexNone
s.Interior.Color = RGB(0, 0, 0)
End Sub
Private Sub Workbook_Activate()
s.Interior.ColorIndex = xlColorIndexNone
s.Interior.Color = RGB(100, 204, 204) ' Blue
End Sub
Но я получаю сообщение об ошибке на первом s.Interior.ColorIndex
Засада:
Object variable or With block variable not set
Вот некоторые изображения моего env:
ThisWorkbook (Error подсвечена):
's = Selection' ==>' Set s = Selection', хотя 'Set s = Target' также будет работать. –
@JohnColeman Я попробовал 'Set s = Selection' и получил' Run-time error '91': Object variable или с переменной block not set', как и раньше. –
* Где * эти модули? Я скопировал ваш код: 1) декларация public 's' в стандартном модуле кода, 2)« selection_change »в модуле листа и 3)« активировать »/« деактивировать »в модуле книги - и все они работайте для меня (после использования 'Set'). Я предполагаю, что вы не используете 'Option Explicit'. Публичные переменные должны быть объявлены в стандартных модулях кода. Если нет, переменная 's' не будет видна в модуле' workbook'. –