VBA: активация книги в новой форме

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Лфыр
Сообщения: 2
Зарегистрирован: 19 май 2017, 16:33

19 май 2017, 16:40

Всем здрасте, уважаемые.
Поделитесь секретом с новеньким, уже с неделю бьюсь над одной проблемой.
В программе открыл файл экселя:
Exc = CreateObject("Excel.Application")
Exc.Workbooks.Open(PathAll).Worksheets(1).Activate()
активировал по необходимости один из 4х листов:
Exc.ActiveWorkbook.Worksheets(1).Activate()
сохранял после изменений:
Exc.ActiveWorkbook.Save()

Но при открытии новой формы (настроек, без закрытия первой), никак не могу получить доступ к листам. Постоянно выдает ошибки... Как можно реализовать подключение книги к активной форме? Я уже пытался даже полностью закрывать/снова открывать книгу из разных форм, всё равно ошибка(
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

20 май 2017, 08:42

В первом посте - не синтаксис VBA.


Что касается поставленного вопроса, то насколько я понял …

Любой стандартный модуль

Код: Выделить всё

Public xl As Excel.Application 'As Object
Public wb As Excel.Workbook    'As Object
Public ws As Excel.Worksheet   'As Object
Модуль формы UserForm1

Код: Выделить всё

Private Sub UserForm_Initialize()
    Dim fileName$
    fileName = "C:\Книга1.xls"
    'Реально существующая рабочая книга (для тестирования используйте 'мусор')
    
    Set xl = CreateObject("Excel.Application")
    Set wb = xl.Workbooks.Open(fileName, 0)
    Set ws = wb.Worksheets(1)
    
    UserForm2.Show
End Sub
Модуль формы UserForm2

Код: Выделить всё

Private Sub UserForm_Initialize()
    ws.Range("A1:C3").Formula = "=RAND()"
    wb.Close True
    xl.Quit
End Sub
Лфыр
Сообщения: 2
Зарегистрирован: 19 май 2017, 16:33

22 май 2017, 12:24

Как не VBA?)
Работаю в Visual Studio 2105

"Set" - тут вообще не используется) Неужели я перепутал название? Тогда прошу прощения.

К сожалению, предыдущий ответ не помог(
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

24 май 2017, 19:28

Visual Studio 2105 - это VB.Net

Готов подтвердить работоспособность своего совета в .xls файле
Ответить