Vba+excel. в 2003 работает, а в 2000 - нет.

Узнай цену своей работы

Формулировка задачи:

стоит ссылка в 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 выдает критическую ошибку, и всё приложение закрывается. скажите, в чем может быть причина? не могу разобраться.

Решение задачи: «Vba+excel. в 2003 работает, а в 2000 - нет.»

textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> Prov_Click()
Screen.MousePointer = vbHourglass
<font color="blue">Dim</font> Xl <font color="blue">As</font> <font color="blue">Object</font>, I, j <font color="blue">As</font> <font color="blue">Integer</font>
<font color="blue">Set</font> Xl = CreateObject(<font color="teal">"Excel.Application"</font>)
Xl.Workbooks.<font color="blue">Open</font> (App.Path + <font color="teal">"\мой.xlt"</font>)
Xl.Sheets(<font color="darkblue"><b>1</b></font>).<font color="blue">Select</font>
<font color="blue">If</font> rcd.State = <font color="darkblue"><b>1</b></font> <font color="blue">Then</font> rcd.<font color="blue">Close</font>
ss = <font color="teal">"select fam, name from buh.dbo.zek"</font>
rcd.<font color="blue">Open</font> ss, cn, adOpenKeyset, adLockOptimistic
j = <font color="darkblue"><b>2</b></font>
<font color="blue">While</font> <font color="blue">Not</font> rcd.EOF
Xl.Cells(j, <font color="darkblue"><b>1</b></font>) = rcd!fam
Xl.Cells(j, <font color="darkblue"><b>2</b></font>) = rcd!<font color="blue">name</font>
Xl.Range(<font color="teal">"A1"</font>, <font color="teal">"B"</font> & j).Borders.LineStyle = <font color="darkblue"><b>1</b></font> <font color="00AA00">' xlContinuous - не знаю точного значения, поэтому пусть будет 1</font>
rcd.MoveNext
j = j + <font color="darkblue"><b>1</b></font>
<font color="blue">Wend</font>
rcd.<font color="blue">Close</font>
Xl.Columns.AutoFit
Xl.Visible = True
Screen.MousePointer = vbDefault

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5