powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт именованного диапазона Excel
11 сообщений из 11, страница 1 из 1
Импорт именованного диапазона Excel
    #39428495
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Макросом импортирую таблицу из первого листа Excel.
В обкатке все работает, а как дошло до дела - затык.
Суть в том, что мне нужно импортировать данные именованного диапазона, например "table1" на "ЛистХ"
Добавил к оператору TransferSpreadsheet название таблицы, выдает ошибку 3011:
Код: 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.
Sub importTest2()
'проба диапазона
   Dim sFile, sPath, sTableName, sFileName, sFolder, sRangeName
   Dim fd As FileDialog
   'Dim app As Object
   'Set app = CreateObject("excel.application")
   Set fd = Application.FileDialog(msoFileDialogFolderPicker)
   
   With fd
      If .Show = False Then Exit Sub
      .AllowMultiSelect = False
      sFolder = .SelectedItems(1)
   End With
   
   sPath = sFolder & "\" & "*.xlsm"
   sFile = Dir(sPath)
   sFileName = sFolder & "\" & sFile
      sTableName = "tMassifNar"
      'sRange = "table1"
      Do While sFile <> ""
         Call DoCmd.TransferSpreadsheet(acImport, acSpreadsheetTypeExcel12, _
         sTableName, sFileName, True, "table1")
         sFile = Dir
      Loop
End Sub


Подскажите плизз что не так делаю.
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39428946
Leprotto, ИМХО в файле sFileName нет именованного диапазона "table1". Вы уверены, что Dir(sPath) находит именно тот файл, который вы обкатывали?
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429356
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ), уверен. Если после True закрыть скобку, то забирает все с первого листа. Также если после True пишу конкретный диапазон, например, "A1:G8" - корректно импортирует данные. Проблема в том, что в реальных файлах excel данные находятся не на первом листе и всегда разное количество строк, поэтому в умной таблице (именованном диапазоне).
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429448
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может проблема в том,что именованный диапазон находится не на первом листе?
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429469
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko, даже с первого не забирает ((
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429549
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может из-за того что первую строку объявляете именем столбца - а он (вдруг?) попадает в этот диапазон происходит конфликт?
Пробовали параметр HasFieldNames установить в False?
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429565
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko, пробовал...
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429596
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leprotto, попробуйте пример отсюда - http://www.cyberforum.ru/ms-access/thread1401720.html#post7379258
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429646
Фотография мегамозг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeprottoАнатолий ( Киев ), уверен. Если после True закрыть скобку, то забирает все с первого листа. Также если после True пишу конкретный диапазон, например, "A1:G8" - корректно импортирует данные. Проблема в том, что в реальных файлах excel данные находятся не на первом листе и всегда разное количество строк, поэтому в умной таблице (именованном диапазоне).
Этот макрос в эксельном источнике печатает диапазон с именем "table1"?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub testNamedRange()
Dim nr
For Each nr In ThisWorkbook.Names
Debug.Print nr.Name
'nr.Delete
Next nr
End Sub



Пачками импортировал из экселя именованные диапазоны DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "tbl0", strFullFileName, -1, "Data0" - с описанной проблемой не встречался.
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39429703
Leprotto, дайте пример файла.
...
Рейтинг: 0 / 0
Импорт именованного диапазона Excel
    #39430932
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПачками импортировал из экселя именованные диапазоны...
Разобрался. Мой код работает корректно, но только если в файле Excel есть именно именованный диапазон "table1", причем все равно на каком листе. А вот из диапазона умной таблицы под именем "table1" импортировать не хочет ((
Спасибо всем отозвавшимся!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт именованного диапазона Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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