Не не не, я не про одновременную работу человека и программы из экселя. Есть файл эксель, у которого есть "лист 1" из которого мы читаем значения из ячеек при помощи VBA, есть "лист 2" из которого нам тоже нужно читать значения.
Почему-то, даже с учетом того, что мы объявляем в начале программы конкретный лист, с которым мы будем работать т.е. "лист 1", то программа смотрит только тот лист, который был открыт при сохранении и закрытии.
Я это представлял таким образом:
Объявляем Set WS = WB.Worksheets("Лист1")
читаем переменные из Листа 1.
Set WS = WB.Worksheets("Лист2")
Читаем переменные из Листа 2
Set WS = WB.Worksheets("Лист3")
Записываем какие-то результаты на Лист 3.
А фактически получается обмениваться данными только с тем листом, который был выбран и сохранен перед закрытием файла эксель.
Таким образом выбрали в экселе Лист 2 -> нажали кнопку сохранить-> закрыли эксель.
В результате программа прочитает только :
"Set WS = WB.Worksheets("Лист2")
Читаем переменные из Листа 2"
А переменные из этих листов:
"Объявляем Set WS = WB.Worksheets("Лист1")
читаем переменные из Листа 1.
Set WS = WB.Worksheets("Лист3")
Записываем какие-то результаты на Лист 3."
Прочитаны не будут.