Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Готовые решения

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 35798
Главная » Готовые решения » VB.NET » Полезные приёмы

Открыть файл Excel и выполнить макрос
07.11.2014, 15:07
'Предполагается, что есть книга "C:\temp\Книга1.xlsm" с листом "Sheet1"
'в книге есть такой вот макрос:
'Sub ertert(s As String)
' Cells(Rows.Count, 1).End(xlUp)(2, 1).Resize(, 3).Value = s
'End Sub

'Допустим, у нас уже есть проект с формой Form1 и кнопками Button2 и Button3
'Предварительно нужно добавить в проект com-ссылку Microsoft Excel 14.0 Object Library
Imports Excel = Microsoft.Office.Interop.Excel

Public Class Form1
 Dim xlApp As New Excel.Application
 Dim xlWb As Excel.Workbook
 Dim xlWsh As Excel.Worksheet

 'Открыть файл
 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
 xlWb = xlApp.Workbooks.Open("C:\temp\Книга1.xlsm")
 xlApp.Visible = True
 End Sub

 'Запустить макрос
 Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
 Dim tempString As String = "трали-вали"
 xlWsh = xlWb.Sheets("Sheet1")
 xlWsh.Activate()
 Try
 xlApp.Run("ertert", tempString)
 'xlApp.Run("ertЦЦert", tempString) 'специально, чтобы вызвать ошибку
 Catch ex As Exception
 ErrMsgBox(ex)
 End Try
 End Sub

 'Закрыть файл
 Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
 xlWb.Close(False) 'закрыть файл без сохранения
 xlApp.Quit() 'выйти из Excel

 releaseObject(xlApp)
 releaseObject(xlWb)
 releaseObject(xlWsh)
 Me.Close()
 End Sub

 'Уничтожить объекты и мусор
 Private Sub releaseObject(ByVal obj As Object)
 Try
 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
 obj = Nothing
 Catch ex As Exception
 obj = Nothing
 ErrMsgBox(ex)
 Finally
 GC.Collect()
 End Try
 End Sub

 Private Sub ErrMsgBox(ByRef ex As Exception)
 If ex Is Nothing Then Exit Sub
 MsgBox(ex.Source & vbCrLf & ex.Message, 16)
 End Sub
End Class
Добавил: nilem | | Теги: открыть файл, Excel, vb.net, выполнить макрос
Просмотров: 2096 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!