powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обращение к листу Excel по номеру с помощью ADODB
5 сообщений из 5, страница 1 из 1
Обращение к листу Excel по номеру с помощью ADODB
    #38708994
Елена EV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите чайнику, пожалуйста.

У меня есть такой запрос, он работает:
"SELECT * FROM [" + ИмяЛиста + "$]"

Но имя листа может быть произвольным, оно неизвестно. Можно ли как-то выбрать не по названию листа, а по номеру? Использование Лист1 не работает, если лист переименован.
...
Рейтинг: 0 / 0
Обращение к листу Excel по номеру с помощью ADODB
    #38709008
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
"SELECT * FROM [" + Worksheets(5).Name + "$]"
...
Рейтинг: 0 / 0
Обращение к листу Excel по номеру с помощью ADODB
    #38709022
Елена EV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

не, не подойдет.
Мне это надо сделать для компьютера, на котором MS Office не установлен. И бесплатных офисов вроде опен офиса тоже нет.
Worksheets - это же метод excel?
У меня есть обработка, корректно работающая через ADODB.Connection и ADODB.Recordset. И в ней надо только вот этот момент изменить с имени листа на номер листа.

Я прошу прощения, если глупость написала, т.к. я знаю только 1С, ну и некоторые методы работы с офисом. Это моя первая попытка разобраться с ADODB.
...
Рейтинг: 0 / 0
Обращение к листу Excel по номеру с помощью ADODB
    #38709029
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Обращение к листу Excel по номеру с помощью ADODB
    #38709062
Елена EV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

да, спасибо. Это помогло.

Выкладываю работающий текст:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	Если ЗначениеЗаполнено(ИмяНомерЛиста.Имя) Тогда
		ИмяЛиста = ИмяНомерЛиста.Имя;
	Иначе
		
		ADOXCatalog = Новый COMОбъект("ADOX.Catalog");
		ADOXCatalog.ActiveConnection = ADODBConnection;
		
		ПереченьАдоТаблиц = ADOXCatalog.Tables;
		Номер = 1;
		Для Каждого АдоТаблица Из ПереченьАдоТаблиц Цикл
			ИмяЛиста = АдоТаблица.Name;
			Если Прав(ИмяЛиста, 1) = "$" Тогда //это правильная таблица. а бывает еще  ИмяЛиста$Область_печати
				Если Номер = ИмяНомерЛиста.Номер Тогда
					Прервать;
				КонецЕсли; 
				Номер = Номер+1;
			КонецЕсли; 
		КонецЦикла;
		
	КонецЕсли; 
	
    ТекстЗапроса = "SELECT * FROM [" + ИмяЛиста + "]";
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обращение к листу Excel по номеру с помощью ADODB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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