Закрыть файл Excel из Access vba

Вопрос: Я создал файл excel xls из Access vba. Private Sub ModifyXl() Dim XLapp As Excel.Application Dim xlWB As Excel.Workbook Set XLapp = New Excel.Application Dim xlSh As Excel.Worksheet Set xlWB = XLapp.Workbooks.Open(DskTp & "NHL Doctors.xls", , False) Set xlSh = xlWB.Sheets("NHLDocs") Cells.Select Selection.Font.Name = "Trebuchet MS" Rows("1:1").Select Selection.Font.Bold = True Range("A1").HorizontalAlignment = xlCenter Columns("A:A").EntireColumn.AutoFit

Вопрос:

Я создал файл excel xls из Access vba.

Private Sub ModifyXl() Dim XLapp As Excel.Application Dim xlWB As Excel.Workbook Set XLapp = New Excel.Application Dim xlSh As Excel.Worksheet Set xlWB = XLapp.Workbooks.Open(DskTp & «NHL Doctors.xls», , False) Set xlSh = xlWB.Sheets(«NHLDocs») Cells.Select Selection.Font.Name = «Trebuchet MS» Rows(«1:1»).Select Selection.Font.Bold = True Range(«A1»).HorizontalAlignment = xlCenter Columns(«A:A»).EntireColumn.AutoFit xlWB.Save xlWB.Close XLapp.Quit Set XLapp = Nothing End Sub

“Cells.Select” не работает, но файл существует. Я не могу удалить его, потому что он говорит, что он уже открыт, но он не отображается как открытый.

Я пробовал интернет, пытаясь найти код, который закроет файл и выйдет из excel – без успеха. Помогите!

Лучший ответ:

Ваш код не работал, потому что у вас нет активированного листа (добавьте xlSh.Activate). Но это не лучший способ решить вашу проблему. Старайтесь избегать использования операторов Select/Active, как в следующем коде:

Private Sub ModifyXl() Dim XLapp As Excel.Application Dim xlWB As Excel.Workbook Set XLapp = New Excel.Application Dim xlSh As Excel.Worksheet ‘Dim DskTp as String ‘DskTp = «C:» Set xlWB = XLapp.Workbooks.Open(DskTp & «NHL Doctors.xls», , False) Set xlSh = xlWB.Sheets(«NHLDocs») With xlSh .Cells.Font.Name = «Trebuchet MS» .Range(«1:1»).Font.Bold = True .Range(«A1»).HorizontalAlignment = xlCenter .Range(«A:A»).EntireColumn.AutoFit End With xlWB.Close True Set xlWB = Nothing XLapp.Quit Set XLapp = Nothing End Sub

BTW, не может найти, где вы инициализировали переменную DskTp (это глобальная переменная?). Я добавил его инициализацию как комментарии (в случае, если вы не используете глобальную переменную – uncomment thouse lines).

Оцените статью
Добавить комментарий