У меня есть книга, которую я хочу, когда она открыта, чтобы перейти ко второму листу и прокрутить и выбрать ячейку с текущая дата. Мой код в настоящее время выглядит следующим образом:Автоматическая прокрутка по дате с помощью VBA в Excel: не удается определить время выполнения Ошибка '91'
Private Sub Workbook_Open()
'Determine date of Sunday in current week
curDay = Format(Date, "d mmm")
'Find that date in Sheet 1 Column A
With Sheets(2).Columns(5)
Set s = .Find(curDay)
End With
Worksheets("Data").Activate
'Select that cell
Range(s.Address).Select
End Sub
Я получаю сообщение об ошибке: «Ошибка выполнения„91“: переменная объекта или переменная блока не установлена» на второй до последней строки.
Я определенно новичок с этим материалом и искал документацию практически обо всем, что я могу здесь придумать, и не могу понять это. Кто-нибудь знает проблему или лучший способ сделать это? Благодарю.
что произойдет, если вы не находите '.find (curDay)', то 's является Nothing', вам нужно ловить этот случай. Используйте 'If Not s is Nothing then', и следующая строка' s.Select'. 's.Select' - это sams как' Range (s.Address) .Select'. Поскольку вы объявили 's' как диапазон, почему бы просто не выбрать его? –
на самом деле ошибка указывает, что вы ничего не нашли –
дополнительные предложения: добавьте 'Option Explicit' вверху модуля и объявите все переменные с' Dim', например 'Dim curDay as string, s As Range' внутри вашей подпрограммы , Более того, в последней строке достаточно написать 's.Select' –