Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Exel и VB 6.0


Автор: Pugach 5.3.2007, 20:16
Долго читал различные темы на форуме, и учебники, но так и не понял.
Бэйсик фор апликатионс и просто 6.0 - это разные вещи?

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

Или открыть уже имеющийся exel файл, и считать формулы с ячеек или значения?

Бошка трещит уже.
Заранее спасибо

Автор: ~FoX~ 5.3.2007, 20:42
Цитата(Pugach @  5.3.2007,  21:16 Найти цитируемый пост)
Бэйсик фор апликатионс и просто 6.0 - это разные вещи?

Разные. ВБ6 самостоятельный язык программирования, ВБА составная часть пакета оффиса. Открвыем ексель - сервис - макросы - редактор Visual Basik.

Цитата(Pugach @  5.3.2007,  21:16 Найти цитируемый пост)
Можно ли из обычного VB 6.0 создать кодом файл EXEL, записать в определенные ячейки значения или формулы, сохранить?
Или открыть уже имеющийся exel файл, и считать формулы с ячеек или значения?

Можно. Ссылки смотри внизу страницы, читай ФАК...примеров килограмм....

Автор: Pugach 5.3.2007, 21:44
Испек следующий код (не работает) пишет ошибка компиляции в первой же строке:

Dim AppExel As Excel.Application
Dim WBK As Excel.Workbook
Dim WSH As Excel.Worksheet

Private Sub Command1_Click()

 'создаем ексель как объект
 Set AppExel = New Excel.Application
 AppExcel.Visible = True

 'открываем книгу
 Set WBK = AppExel.Application.Workbooks.Open("c:\book.xls")
   
 'операция
 range("A1").Value = 5
 range("A2").Value = 3
 range("A3").formula = "À1+À2"
 Text1.Text = range("A3").Value

 'уничтожение
 Set AppExcel = Nothing
End Sub

Автор: Naghual 6.3.2007, 00:59
Необходимо к проекту подключить библиотеку Офиса.

Project -> References...
Ставиш голочку напротив "Microsoft Excel XX Object Library"


Автор: Pugach 6.3.2007, 10:44
Ура, работает спасибо
код:
Код

Dim AppExcel As Excel.Application
Dim WBK As Excel.Workbook
Dim WSH As Excel.Worksheet

Private Sub Command1_Click()

 Set AppExcel = New Excel.Application
 'AppExcel.Visible = True

 Set WBK = AppExcel.Application.Workbooks.Open("c:\book.xls")
   
  range("a1").Value = 5
 range("a2").Value = 3
 range("a3").formula = "=a1 + a2"
 Text1.Text = range("a3").Value

 Set AppExcel = Nothing
End Sub


Токо 1 маленький ньюанс - Excel файл пришлось создавать самому в указанном месте, иначе пишет что такой книги нет (как создать програмно?)
И еще, когда AppExcel.visible=true - активно файл после выполнения операции не закрывается и не удаляется.

Автор: Naghual 6.3.2007, 11:35
Workbooks.Open  - Открытие существующей книги.
Workbooks.Add    - Создание новой книги.

Читайте батенька хелп.

Автор: Pugach 6.3.2007, 19:10
Workbooks.add у меня не работает, пищет ошибка 1004 не удалось найти файл (когда он заранее не создан)...


И еще, когда AppExcel.visible=true - активно файл после выполнения операции не закрывается и не удаляется. 
пробовал
Set WBK = AppExcel.Workbooks.Close
Set WBK = AppExcel.Workbooks.Delete           - уж не знаю можно ли так

Автор: Pugach 6.3.2007, 20:40
Усе понял
Msdn - рулит.

Я раньше думал что это бодяга на английском.
Вот код
Код

Dim AppExcel As New Excel.Application
Dim WBK As Excel.Workbook
Dim WSH As Excel.Worksheet

Private Sub Command1_Click()
 
 Set AppExcel = New Excel.Application
 'AppExcel.Visible = True

  AppExcel.Workbooks.Add
   
 Range("a1").Value = 5
 Range("a2").Value = 3
 Range("a3").Formula = "=a1 + a2"
 Text1.Text = Range("a3").Value

 Set AppExcel = Nothing
End Sub

просто надо было New добавить
всем спасибо

Автор: observateur 6.3.2007, 21:43
Добрый день. прошу вас помочь просьба такая…..например в VB 6.0 есть такой компонент RichTextBox с его помощю можно использоват Word-овские функции…
А можно ли использовать Excel-ские компоненты. Что бы было использовать точно так же как RichTextBox(не выйдя из приложения VB 6.0)

Автор: Дмит 6.3.2007, 22:16
Наверно тебе нужен "Microsoft Office Spreadsheet   ХХ.Х"

Автор: observateur 6.3.2007, 22:25
А не скажите где это находиться?



Автор: Дмит 7.3.2007, 19:35
Это - контрол, практически лист Excel'я. Находится тамже, где RichTextBox. Если нет на панели контролов, то добавь его.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)