powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vba+excel. в 2003 работает, а в 2000 - нет.
11 сообщений из 11, страница 1 из 1
vba+excel. в 2003 работает, а в 2000 - нет.
    #33093834
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стоит ссылка в references
microsoft excel 11.00 object library.

пишу код для выгрузки в excel

Private Sub Prov_Click()
Screen.MousePointer = vbHourglass
Dim Xl As Excel.Application, I, j As Integer
Set Xl = CreateObject("Excel.Application")
Xl.Workbooks.Open (App.Path + "\мой.xlt")
Xl.Sheets(1).Select
If rcd.State = 1 Then rcd.Close
ss = "select fam, name from buh.dbo.zek"
rcd.Open ss, cn, adOpenKeyset, adLockOptimistic
j = 2
While Not rcd.EOF
Xl.Cells(j, 1) = rcd!fam
Xl.Cells(j, 2) = rcd!name
Xl.Range("A1", "B" & j).Borders.LineStyle = xlContinuous
End If
rcd.MoveNext
Wend
Xl.Columns.AutoFit
Xl.Visible = True
Screen.MousePointer = vbDefault

всё это работает, если office 2003. в 2000 office выдает критическую ошибку, и всё приложение закрывается. скажите, в чем может быть причина? не могу разобраться.
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33093840
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенькастоит ссылка в references
microsoft excel 11.00 object library.Вообще то в 2000 офисе версия называется 9.0
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33093841
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно к-н программно изменить эту ссылку на 9.0?
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33093950
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем нужна ссылка если у вас стоит позднее связывание через createobject ?
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33093961
JRM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JRM
Гость
Можно сделать иначе - все переменные Экселевских типов преобразовать в object обычные, убрать референс и все - через CreateObject создаете объект и дальше с ним работаете, как у вас в принципе и реализовано. Ну и заменить константы Экселя нормальными значениями (числовыми).
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33094079
Фотография programmator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Можно сделать иначе - все переменные Экселевских типов преобразовать в object обычные, убрать референс и все - через CreateObject создаете объект и дальше с ним работаете, как у вас в принципе и реализовано. Ну и заменить константы Экселя нормальными значениями (числовыми).

можно поподробнее, если возможно пример
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33094223
JRM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JRM
Гость
programmatorможно поподробнее, если возможно пример
Можно. Берем первый код и делаем с ним такие преобразования (полную точность не гарантирую - сейчас проверить не на чем):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Prov_Click()
Screen.MousePointer = vbHourglass
Dim Xl As Object, I, j As Integer
Set Xl = CreateObject("Excel.Application")
Xl.Workbooks.Open (App.Path + "\мой.xlt")
Xl.Sheets( 1 ).Select
If rcd.State =  1  Then rcd.Close
ss = "select fam, name from buh.dbo.zek"
rcd.Open ss, cn, adOpenKeyset, adLockOptimistic
j =  2 
While Not rcd.EOF
Xl.Cells(j,  1 ) = rcd!fam
Xl.Cells(j,  2 ) = rcd!name
Xl.Range("A1", "B" & j).Borders.LineStyle =  1  ' xlContinuous - не знаю точного значения, поэтому пусть будет 1
rcd.MoveNext
j = j +  1 
Wend
rcd.Close
Xl.Columns.AutoFit
Xl.Visible = True
Screen.MousePointer = vbDefault
Убираем референс на Эксель и все будет продолжать работать
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33094236
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вс, разобралась. объявила как
Dim Xl as object
Set Xl = CreateObject("Excel.Application")
Xl.Workbooks.Open (App.Path + "\мой.xlt")
Xl.Sheets(1).Select

теперь во всех версиях office работает. спасибо огромное!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
vba+excel. в 2003 работает, а в 2000 - нет.
    #33980603
Фотография dsfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос на ту же тему:

Я подключаю через References... библиотеку Microsoft Excel 11.0 Object Library в VBA для Access, далее идет забор данных из Access-запроса на выборку и вставка их в существующий Excel-документ (для вставки запускаю программу в Excel-документе).
Sub ПрайсExcel()
Dim stDocName As String
Dim xlaProd As Excel.Application
Dim xlwProd As Excel.Workbook
Dim xlrProd As Variant
DoCmd.Hourglass True
stDocName = "з000 ПрайсДляExcel"
DoCmd.OpenQuery stDocName, False, acReadOnly 'открываем запрос и запоминаем данные
DoCmd.DoMenuItem acQueryBar, acEditMenu, acSelectAllRecords, , acMenuVer70
DoCmd.DoMenuItem acQueryBar, acEditMenu, acCopy, , acMenuVer70
'Открываем таблицу Excel
Set xlwProd = GetObject("M:\...\1ПрайсExcel.xls", "Excel.Sheet")
Set xlaProd = xlwProd.Parent
'запускаем внутренний макрос на вставку данных в лист Excel
xlrProd = xlaProd.Application.Run("1ПрайсExcel.xls!ЗакачкаПрайса")
With xlwProd.ActiveSheet
'в табличке указываем номер прайса
.Cells(5, 3).Value = "ПРАЙС-ЛИСТ №" + Str(НОМ_ПРАЙСА())
End With
...
Я использую метод GetObject для работы с Excel-книгой
Переменная xlwProd не возьмется без библиотеки Microsoft Excel xx.xx Object Library
Библиотека Microsoft Excel 11.0 Object Library есть только у меня на компьютере, у всех остальных - десятая
Как быть в этом случае?
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33980640
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо подключите в референсы библиотеку 10-й версии, либо поставляйте вместе с дистрибутивом 11-ю.
...
Рейтинг: 0 / 0
vba+excel. в 2003 работает, а в 2000 - нет.
    #33980795
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык уже ж ответили. Но если с первого раза не понятно, не сложно еще раз. Убери ссылки из референсов, все экселевские переменные переобъяви как Object, а константы замени из числовыми значениями. Comprende?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vba+excel. в 2003 работает, а в 2000 - нет.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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