Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт именованного диапазона Excel / 11 сообщений из 11, страница 1 из 1
28.03.2017, 15:05
    #39428495
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
Всем привет!
Макросом импортирую таблицу из первого листа 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
29.03.2017, 09:26
    #39428946
Импорт именованного диапазона Excel
Leprotto, ИМХО в файле sFileName нет именованного диапазона "table1". Вы уверены, что Dir(sPath) находит именно тот файл, который вы обкатывали?
...
Рейтинг: 0 / 0
29.03.2017, 15:59
    #39429356
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
Анатолий ( Киев ), уверен. Если после True закрыть скобку, то забирает все с первого листа. Также если после True пишу конкретный диапазон, например, "A1:G8" - корректно импортирует данные. Проблема в том, что в реальных файлах excel данные находятся не на первом листе и всегда разное количество строк, поэтому в умной таблице (именованном диапазоне).
...
Рейтинг: 0 / 0
29.03.2017, 17:49
    #39429448
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
может проблема в том,что именованный диапазон находится не на первом листе?
...
Рейтинг: 0 / 0
29.03.2017, 18:12
    #39429469
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
alecko, даже с первого не забирает ((
...
Рейтинг: 0 / 0
29.03.2017, 20:41
    #39429549
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
может из-за того что первую строку объявляете именем столбца - а он (вдруг?) попадает в этот диапазон происходит конфликт?
Пробовали параметр HasFieldNames установить в False?
...
Рейтинг: 0 / 0
29.03.2017, 21:33
    #39429565
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
alecko, пробовал...
...
Рейтинг: 0 / 0
29.03.2017, 23:00
    #39429596
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
Leprotto, попробуйте пример отсюда - http://www.cyberforum.ru/ms-access/thread1401720.html#post7379258
...
Рейтинг: 0 / 0
30.03.2017, 07:57
    #39429646
мегамозг
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
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
30.03.2017, 09:21
    #39429703
Импорт именованного диапазона Excel
Leprotto, дайте пример файла.
...
Рейтинг: 0 / 0
31.03.2017, 14:35
    #39430932
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт именованного диапазона Excel
авторПачками импортировал из экселя именованные диапазоны...
Разобрался. Мой код работает корректно, но только если в файле Excel есть именно именованный диапазон "table1", причем все равно на каком листе. А вот из диапазона умной таблицы под именем "table1" импортировать не хочет ((
Спасибо всем отозвавшимся!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт именованного диапазона Excel / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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