очередная проблема с гридом

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

очередная проблема с гридом

Сообщение kazantip » 26.04.2005 (Вт) 16:13

Здесь уже задавали вопрос по поводу сохранения данных грида в excel, я воспользовался приведённым кодом, но сохранить так и не получилось :oops: :cry: . Подскажите пожайлуста в чем у меня ошибка. Очень нужно сделать этот перенос. Вот мой код:

Код: Выделить всё
CommonDialog1.Filter = "электронные таблицы (*.xls)|*.XLS"
    CommonDialog1.ShowSave
    Set Excel = CreateObject("excel.application")
     If CommonDialog1.FileName <> "" Then
        Open CommonDialog1.FileName For Output As #1
         For a = 1 To MSFlexGrid1.Rows
         For b = 1 To MSFlexGrid1.Cols
      print#1, Excel.worksheets(1).cels(a, b).value = MSFlexGrid1.TextMatrix(a - 1, b - 1)
        Next b
        Next a
End if

выдаёт ошибку run-time error 1004 application-defined or object-defined error и выделяет строку
Код: Выделить всё
Excel.worksheets(1).cels(a, b).value = MSFlexGrid1.TextMatrix(a - 1, b - 1)

Если сможете чем-нибудь помочь буду очень благодарен. :)

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2005 (Вт) 16:14

Excel.worksheets(1).cells?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2005 (Вт) 16:16

Хм... прочитал теперь код.
Откуда ты его взял?!

Зачем там FileName, #1 и Print?

Что ты вообще хочешь сделать?

kazantip
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 25.04.2005 (Пн) 23:06
Откуда: Москва

Сообщение kazantip » 26.04.2005 (Вт) 16:18

uhm писал(а):Excel.worksheets(1).cells?
Ошибка где-то в другом месте, это я просто опечатался :oops:
Я хочу что бы данные которые в гриде сохранялись в документре excel....

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2005 (Вт) 16:22

Делай так: создаешь Excel (это ты уже сделал), в нем создаешь новую книгу (Workbooks.Add), в ней исполняешь

Код: Выделить всё
         For a = 1 To MSFlexGrid1.Rows
         For b = 1 To MSFlexGrid1.Cols
         avb.worksheets(1).cells(a, b).value = MSFlexGrid1.TextMatrix(a - 1, b - 1)
        Next b
        Next a


- без всякого Print, где avb - твоя созданная книга. Потом сохраняешь книгу (Workbook.SaveAs) с именем из твоего CommonDialog'а.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.04.2005 (Вт) 16:22

это помесь какая-то слона с носорогом :D

зачем файл открыл то на запись?
эксель уже есть , так и добавляй свои данные прямо в открытый Sheet, а потом выполни сохранение в файл нужного тебе имени из экселя его же командой

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.04.2005 (Вт) 16:24

uhm
уже все тебе разжевал :lol:

kazantip
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 25.04.2005 (Пн) 23:06
Откуда: Москва

Сообщение kazantip » 26.04.2005 (Вт) 17:03

uhm писал(а):Делай так: создаешь Excel (это ты уже сделал), в нем создаешь новую книгу (Workbooks.Add), в ней исполняешь

Напиши пожайлуста строку для создания кники, а то он у меня пишет синтаксическую ошибку. И ОГРОМНОЕ спасибо за помощь, я основной код проги написал, все нормально работает, а вот с сохранялкой какой-то гимор получился.... :oops: :oops: :oops:

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2005 (Вт) 17:15

Оч. просто:

Код: Выделить всё
Set avb=Excel.Workbooks.Add

kazantip
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 25.04.2005 (Пн) 23:06
Откуда: Москва

Сообщение kazantip » 26.04.2005 (Вт) 18:27

Ой......... Что-то дела совсем плохо.... пишу я avb.saveas.... А он заявляет, что невозможно св-во saveas для класса workbook :cry: : :cry: :cry: :cry:

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.04.2005 (Ср) 9:24

:? Пишешь ли ты путь сохранения? (avb.SaveAs имя_файла)? И является ли это имя нормальным (в смысле, правильным)?

kazantip
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 25.04.2005 (Пн) 23:06
Откуда: Москва

Сообщение kazantip » 27.04.2005 (Ср) 17:26

Всем огромное спасибо за помощь. Я сделал эту сохранялку, всё работает :) :) :) :) :)
p.s отдельное спасибо uhm!

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.04.2005 (Ср) 17:31

Всегда пжалста! 8)


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

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

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

    TopList