Method 'Copy' of object '_Worksheet' failed

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alzasr
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.12.2008 (Пт) 7:55

Method 'Copy' of object '_Worksheet' failed

Сообщение alzasr » 05.12.2008 (Пт) 9:27

методами dbGrid (компонет из Express Quantum Grid) создаю временную книгу EXCEL, далее вношу в нее изменения и пытаюсь скопировать во вновь созданную книгу методом листа Copy. Выходит ошибка "Method 'Copy' of object '_Worksheet' failed". Ручное копирование листа (из меню переместить/копировать) тоже не получается
Вот используемый для копирования код

Код: Выделить всё
Function Sheet2NewWorkbook(sFile As String, lShNumber As Long, Optional wbFile As _
  EXCEL.Workbook, Optional wb As EXCEL.Workbook, Optional sErr As String) As Boolean
 
  Dim bNewApp As Boolean, bOpenFile As Boolean, bNewBook As Boolean
  Dim ws As EXCEL.Worksheet, ws1 As EXCEL.Worksheet
 
  On Error GoTo er
 
  If Not FileExists(sFile) Then Err.Raise clERROR, , "Ôàéë íå íàéäåí"
 
  If AppE Is Nothing Then GetExcel: bNewApp = True
  If wbFile Is Nothing Then Set wbFile = AppE.Workbooks.Open(sFile): bOpenFile = True
  If wbFile.Sheets.Count < lShNumber Then Err.Raise clERROR, , "Ëèñò " & lShNumber & " íå íàéäåí"
 
  AppE.Visible = True
  If wb Is Nothing Then Set wb = AppE.Workbooks.Add(xlWBATWorksheet): bNewBook = True
  Set ws = wbFile.Sheets(lShNumber)
  Set ws1 = wb.Sheets(wb.Sheets.Count)
  ws.Copy After:=ws1 'wb.Sheets(wb.Sheets.Count)
 
 
  If bNewBook Then
    AppE.DisplayAlerts = False
    wb.Sheets(1).Delete
    AppE.DisplayAlerts = True
  End If
 
  If bOpenFile Then wbFile.Close False: Set wbFile = Nothing
  Sheet2NewWorkbook = True
  GoTo ok
 
er:
  sErr = Err.Description
ok:
  If bNewApp Then Set AppE = Nothing
  Err.Clear
End Function


Причем, при использовании метода move вместо copy ошибки не выдает. Офис стоит 2003.

[alibek] :: Используй тэг CODE для форматирования программного листинга.

alzasr
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.12.2008 (Пт) 7:55

Re: Method 'Copy' of object '_Worksheet' failed

Сообщение alzasr » 05.12.2008 (Пт) 18:25

Эта ошибка выходит только с 2003 офисом, пробовал 2000 и 2007, там все нормально, щас качаю 3 сервис пак для 2003 офиса, позже отпишусь о результате. Как мне кажеться, проблема заключается в том, что грид выгружает в старом формате EXCELя, а 2003 некоректно их отрывает.

alzasr
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.12.2008 (Пт) 7:55

Re: Method 'Copy' of object '_Worksheet' failed

Сообщение alzasr » 08.12.2008 (Пн) 16:30

Третий сервиспак не помог, придется клиентам офис переставлять (ну Эксель по меньшей мере)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 110

    TopList