Доброе время суток. Прошу помощи т.к. сам запутался.
Есть файл из трех листов "КодНомер", Отчет01", "Список01".
На одном из листов есть несколько процедур которые работают с данными между листами. При конкретном указании имени листов все работает. Но возникла проблема - таких файлов будет несколько и отличаться они будут номером (типа "КодНомер", Отчет03", "Список03"), честно говоря в каждом файле во ВСЕХ процедурах править выискивать наименования - для меня затруднительно, и количество файлов может добавляться, изменяться (запутаюсь однозначно))). Подумал, а почему бы не сделать названия листов переменными, просто в новом файле поменять в коде присвоенное значение имени листа и не трогать сами процедуры.
Не работает и не понимаю что не так делаю. Я профан если честно.
Переменные объявил.
Значения присвоил (где-то здесь косяк?).
Обращаюсь к переменным надеюсь правильно )))
Только не ругайтесь. Файлик прилагаю. Сделал маленький примерчик. В оригинале и таблицы крупнее и процедур больше, ну и файлов дай бог.
Помогите подправить код, пожалуйста. И спасибо всем за участие.
Код |
---|
Public strListOtchet, strListSpisok As Sheets ' Объявляю переменные как листы
Public Sub Peremennii()
strListOtchet.Name = "Отчет & КодНомер!A2" ' В нашем случае на листе "КодНомер" в ячейке "A2" значение равно "01"
strListSpisok.Name = "Список & КодНомер!A2" ' В нашем случае на листе "КодНомер" в ячейке "A2" значение равно "01"
End Sub
Sub OchistkaListaOtchet()
'Отключаем обновление экрана (мигание)
Application.ScreenUpdating = 0
'Начинаем очистку вспомогательных таблиц
Sheets("srtListOtchet").Select
' Sheets("Отчет01").Select
Range("A4:B22, E4:F22").Select
Selection.ClearContents
'Переходим в поле "Коэффициент"
Range("C4").Select
'Возвращаемся на лист списка
Sheets("srtListSpisok").Select
' Sheets("Список01").Select
Range("A6").Select
'Включаем обновление экрана
Application.ScreenUpdating = 1
'Уведомляем об успешной очистке
MsgBox "Все поля очищены)!", vbExclamation, ""
End Sub
|