Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 13:57   #1
Maxwel
Новичок
Джуниор
 
Регистрация: 31.01.2011
Сообщений: 2
По умолчанию макрос в Excel - ошибка

при сохранении файла:
Set rsMain = ThisWorkbook.Doc.DataSets("TAB2")

подскажите плиз - как исправить
Maxwel вне форума Ответить с цитированием
Старый 31.01.2011, 14:52   #2
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
Смех

Цитата:
Сообщение от Maxwel Посмотреть сообщение
при сохранении файла:
Set rsMain = ThisWorkbook.Doc.DataSets("TAB2")

подскажите плиз - как исправить
Вы толком напишите что конкретно Вам надо: сохранить активную (определённую) книгу или что то ещё ? Здесь вообще то программирование в Эксель обсуждают.
Djeki вне форума Ответить с цитированием
Старый 31.01.2011, 15:27   #3
Maxwel
Новичок
Джуниор
 
Регистрация: 31.01.2011
Сообщений: 2
По умолчанию подробнее...

Задача: есть реестр Налог.накладных с 1C - экспортирован в Еxcel.
Есть программа для сдачи отчетности, в которую нужно втянуть этот реестр НН.
Ход выполнения:
открываю файл Еxcel с макросами (с программы для сдачи отчетности) - переношу туда данные с реестра НН с 1С(с Еxcel) путем копирования/вставки данных. При нажатии кнопки: сохранить -run-time error 91

___________________________________ _____________________________
Private Sub CommandButton1_Click()

Range("A8:G5000").Select
Selection.ClearContents
Range("A8").Select

Set rsMain = ThisWorkbook.Doc.DataSets("TAB2")
rsMain.First
i = 8
While Not rsMain.EOF

ActiveSheet.Cells(i, 1).Value = rsMain.FldVal("TAB2_A1")
ActiveSheet.Cells(i, 2).Value = rsMain.FldVal("TAB2_A2")
ActiveSheet.Cells(i, 3).Value = rsMain.FldVal("TAB2_A3")
ActiveSheet.Cells(i, 4).Value = rsMain.FldVal("TAB2_WMDTYPE_STR")
ActiveSheet.Cells(i, 5).Value = rsMain.FldVal("TAB2_A4")
ActiveSheet.Cells(i, 6).Value = rsMain.FldVal("TAB2_A5")
ActiveSheet.Cells(i, 7).Value = rsMain.FldVal("TAB2_A6")
ActiveSheet.Cells(i, 8).Value = rsMain.FldVal("TAB2_A7")
ActiveSheet.Cells(i, 9).Value = rsMain.FldVal("TAB2_A8")
ActiveSheet.Cells(i, 10).Value = rsMain.FldVal("TAB2_A9")
ActiveSheet.Cells(i, 11).Value = rsMain.FldVal("TAB2_A10")
ActiveSheet.Cells(i, 12).Value = rsMain.FldVal("TAB2_A11")

i = i + 1
rsMain.Next

Wend

Set rsMain = Nothing
End Sub

Private Sub CommandButton2_Click()

Set rsMain = ThisWorkbook.Doc.DataSets("TAB2")
rsMain.First
While Not (rsMain.Bof And rsMain.EOF)
rsMain.Delete
Wend
rsMain.First
i = 8
While ActiveSheet.Cells(i, 1).Value <> ""
rsMain.Append
ActiveSheet.Cells(i, 1).Select
rsMain.FldVal("TAB2_A1") = ActiveSheet.Cells(i, 1)
rsMain.FldVal("TAB2_A2") = ActiveSheet.Cells(i, 2)
rsMain.FldVal("TAB2_A3") = ActiveSheet.Cells(i, 3)
rsMain.FldVal("TAB2_WMDTYPE_STR") = ActiveSheet.Cells(i, 4)
rsMain.FldVal("TAB2_A4") = ActiveSheet.Cells(i, 5)
rsMain.FldVal("TAB2_A5") = ActiveSheet.Cells(i, 6)
rsMain.FldVal("TAB2_A6") = ActiveSheet.Cells(i, 7)
rsMain.FldVal("TAB2_A7") = ActiveSheet.Cells(i, 8)
rsMain.FldVal("TAB2_A8") = ActiveSheet.Cells(i, 9)
rsMain.FldVal("TAB2_A9") = ActiveSheet.Cells(i, 10)
rsMain.FldVal("TAB2_A10") = ActiveSheet.Cells(i, 11)
rsMain.FldVal("TAB2_A11") = ActiveSheet.Cells(i, 12)

i = i + 1
rsMain.Next
Wend
If rsMain.Bof And rsMain.EOF Then
rsMain.Append
rsMain.Post
End If
MsgBox "Äîäàíî " + CStr(i - 8) + " çàïèñ³â"
Set rsMain = Nothing

ThisWorkbook.Doc.Refresh
ThisWorkbook.Doc.Save
End Sub

Private Sub CommandButton3_Click()
Set ThisWorkbook.Doc = Nothing
Sheets("Ðååñòð äîêóìåíòîâ").Select
End Sub
___________________________________ _________________________
Изображения
Тип файла: jpg 91.jpg (33.1 Кб, 61 просмотров)
Maxwel вне форума Ответить с цитированием
Старый 31.01.2011, 15:36   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

В Эксе нет таких конструкций:
ThisWorkbook.Doc.Refresh
ThisWorkbook.Doc.Save
Откуда Вы вообще такое взяли?
Нужно просто:
ThisWorkbook.Save
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 31.01.2011, 16:24   #5
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
Восклицание

Цитата:
Сообщение от kuklp Посмотреть сообщение
В Эксе нет таких конструкций:
ThisWorkbook.Doc.Refresh
ThisWorkbook.Doc.Save
Откуда Вы вообще такое взяли?
Нужно просто:
ThisWorkbook.Save
Это вероятно из Верда..
Djeki вне форума Ответить с цитированием
Старый 31.01.2011, 16:45   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Там нет ThisWorkbook.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос в Excel Zcomp Microsoft Office Excel 2 15.09.2010 00:49
Макрос в excel sergantikus Microsoft Office Excel 14 03.07.2010 00:05
Макрос из Excel в Access kipish_lp Microsoft Office Access 3 23.04.2010 21:05
Макрос для Excel W0LF Microsoft Office Excel 1 30.10.2009 15:07
Макрос в Excel Dartchuwak Microsoft Office Excel 1 11.01.2009 21:50