Если вы просто хотите установить имя листа в своем коде, используйте Dim sheetname As String
. Option Explicit
очень помогает, но вы должны быть очень осторожны при объявлении переменных ...
Случилось так, что ошибка появилась в этой строке только потому, что первые два условия были False
...
Также хорошо избегать использования ActiveSheet
, Sheets(...)
, Range("A" ...)
, Cells(aRow,...)
.
Все выраженное таким образом относится к ActiveSheet . Когда вы будете работать с другим листом, возможно, с другой книгой, и вам потребуется обработать определенный лист c (Sheets(sheetname).Range...
), вы можете столкнуться с большим беспорядком. Попробуйте определить лист со ссылкой на его рабочую книгу. Каждый диапазон для ссылки на лист, где он принадлежит ...
Как минимум Dim Sh as Worksheet
, за которым следует Set Sh = ActiveSheet
(используйте свой рабочий лист). А затем используйте Sh.Range("A...)
, Sh.Cells(aRow,...)
и так далее ...
Рекомендуется развивать хорошие привычки, которые помогут вам в будущем ...