powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Стринг в массив листов в Excel
4 сообщений из 4, страница 1 из 1
Стринг в массив листов в Excel
    #39120941
HypeR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем форумчинам!
В базе есть функция, которая возвращает string, в котором перечень листов Excel ,которые надо скрывать
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Function chooseSheet2Hide() as String
Dim ch As Byte
chooseSheet2Hide= ""
ch = Forms!Форма1!grH
Select Case ch
Case 1
chooseSheet2Hide= "Лист1, Лист2"
Case 2
chooseSheet2Hide= "Лист2, Лист3"
End Select
End Function


Потом пытаюсь открыть книгу Excel, выбрать массив листов и скрыть их
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim xlApp As Object, xlWb As Object, spLists  as String
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open(ReportName)
spLists = chooseSheet2Hide()
xlApp.Sheets(Array("& spLists &")).Select
xlApp.ActiveWindow.SelectedSheets.Visible = False


Выдает ошибку Subscript out of Range ..... названия листов такие существуют
Код: vbnet
1.
2.
?spLists 
Лист1, Лист2


Пытаюсь обрамить в кавывчки
spLists$ = Replace(chooseSheet2Hide, chooseSheet2Hide, Chr(34) & chooseSheet2Hide & Chr(34))
Ошибка та же, хотя
Код: vbnet
1.
2.
?spLists 
"Лист1, Лист2"


Как правильно передать список листов ?
...
Рейтинг: 0 / 0
Стринг в массив листов в Excel
    #39120979
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HypeR,
Проверил такой код (см. ниже) - замечательно отрабатывает:)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Option Compare Database

Public Function chooseSheet2Hide() As Variant
Dim bbb(2)
ch = 2
Select Case ch
    Case 1
        bbb(0) = "Лист1"
        bbb(1) = "Лист2"
    Case 2
        bbb(0) = "Лист2"
        bbb(1) = "Лист3"
End Select
chooseSheet2Hide = bbb
End Function

Public Function fff()
Dim vvv() As Variant
Dim xlApp As Object, xlWb As Object
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open(CurrentProject.Path & "\Книга1.xls")
vvv = chooseSheet2Hide()
For i = 0 To UBound(vvv) - 1
    xlApp.Sheets(CStr(vvv(i))).Select
    xlApp.ActiveWindow.SelectedSheets.Visible = False
Next i
xlApp.Visible = True
End Function
...
Рейтинг: 0 / 0
Стринг в массив листов в Excel
    #39120980
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
spLists = chooseSheet2Hide()
arrLists = Split(spLists, ",")
For i = LBound(arrLists) To UBound(arrLists)
    xlWb.Sheets(arrLists(i)).Visible = False
Next i
...
Рейтинг: 0 / 0
Стринг в массив листов в Excel
    #39121011
HypeR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, guest_rusimport, Благодарю!!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Стринг в массив листов в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]