Вопрос:
Я создал файл 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).