Работа с Excel из VB6
Формулировка задачи:
две недели назад открыл для себя программирование, начал с
vba,так как хотел оптимизировать свою работу в
excel.Сейчас пробую написать программулину(на
VB6,он ведь ближе всего к vba) для автоматического добавления своих макросов в книгу.
Начал я с добавления
Microsoft Excel 8.0 Object Library.И застрял в самом начале
Листинг программы
- Private Sub Start_Click()
- Dim V As Variant
- 'On Error GoTo ErrorHandler
- Excel.Application.Visible = True
- V = Application.GetOpenFilename '("Excel Files (*xls)") - выдает ошибку
- Excel.Application.Workbooks.Open (V)
- With Excel.Application.Workbooks(V).VBProject.VBComponents
- ' ошибка Excel.Application.Workbooks(V).Path <> subscript out of range
- .Import Excel.Application.Workbooks(V).Path & "\Macro\MD.bas"
- .Import Excel.Application.Workbooks(V).Path & "\Macro\mw2.frm"
- .Import Excel.Application.Workbooks(V).Path & "\Macro\CFormChanger.cls"
- End With
- Exit Sub
- ErrorHandler:
- MsgBox "Программная ошибка! vbOKOnly, "Внимание!"
- End Sub
Помогите плиз
null
Листинг программы
- Excel.Application.Workbooks(V).Path
пробовал
Листинг программы
- Excel.Application.ThisWorkbook.Path
тоже выдает ошибку
Решение задачи: «Работа с Excel из VB6»
textual
Листинг программы
- Private Sub Start_Click()
- Dim objExApp As Object, wbBook As Object
- Dim sFullPath As String, sPath As String, sWBName As String
- 'V = Application.GetOpenFilename 'У Вас же есть в VB диалог выбора файлов. Зачем использовать для этого Excel?
- 'Workbooks(V) - и в VBA у Вас это работало? коллекция Workbooks содержит имена книг(с расширениями), а не полные пути к файлам
- 'добавляем на форму "Microsoft Common Dialog Control 6.0" из контролов. Если среди контролов нет - добавляем: Проект-Компоненты
- '
- CommonDialog1.Filter = "Excel (*.xls*)|*.xls*"
- CommonDialog1.ShowOpen
- sFullPath = CommonDialog1.FileName
- If sFullPath = "" Then Exit Sub
- sWBName = Dir(sFullPath, 16)
- sPath = Replace(sFullPath, sWBName, "")
- 'создаем новый экзмпляр Excel
- Set objExApp = CreateObject("Excel.Application")
- 'On Error GoTo ErrorHandler
- objExApp.Visible = True
- objExApp.Workbooks.Open sFullPath
- With objExApp.Workbooks(sWBName).VBProject.VBComponents
- ' ошибка Excel.Application.Workbooks(V).Path <> subscript out of range
- .Import sPath & "Macro\MD.bas"
- .Import sPath & "Macro\mw2.frm"
- .Import sPath & "Macro\CFormChanger.cls"
- End With
- 'освобождать ресурсы тоже надо:
- wbBook.Close 0 'закрываем книгу без сохранения
- objExApp.quit
- Set wbBook = Nothing: Set objExApp = Nothing
- Exit Sub
- ErrorHandler:
- If Not objExApp Is Nothing Then objExApp.quit
- Set objExApp = Nothing
- MsgBox "Программная ошибка!", vbOKOnly, "Внимание!"
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д