Открытие пустой таблицы Excel и запись в нее из Access VBA не работает - PullRequest
1 голос
/ 10 января 2011

Я написал приложение Access 2007, которое открывает пустую электронную таблицу Excel и записывает в нее следующий (сокращенный) код VBA:

Dim Excel_App As Excel.Application  
Set Excel_App = CreateObject("Excel.Application")  
Excel_App.Visible = True  
Excel_App.Workbooks.Add  
With Excel_App  
  .Columns("A:ZZ").ColumnWidth = 25  
  .Range("A2:ZZ2").VerticalAlignment = xlCenter  
  .Range("A2:ZZ2").Font.FontStyle = "Bold"  
  .Range("A" & CStr(iHeadingRows)).Select  
  .ActiveCell.FormulaR1C1 = "ABC"  
End With

Приведенный выше код работает на всех установках Windows (Vista | Xp) / Access 2007 (обновлен со всеми исправлениями), которые я тестировал, кроме клиентской. С одной стороны, пустая электронная таблица Excel открывается, но остается пустой, когда я пытаюсь записать в нее и генерируется ошибка времени выполнения.

Возможно ли, что какая-то системная политика для пользователя или какая-то конкретная настройка блокирует нормальное поведение, которое я тестировал на других ПК? И если это так, что можно сделать, чтобы исправить это самым ненавязчивым способом?

Спасибо за любой совет!

1 Ответ

0 голосов
/ 10 января 2011

Просто этот вопрос не останется без ответа. По всей видимости, источником проблемы было то, что в предыдущих версиях Excel было только 256 столбцов, и вы пытались получить доступ к ячейке в столбце «ZZ».

Вот решение, которое должно работать со всеми версиями Excel:

Dim Excel_App As Excel.Application
Set Excel_App = CreateObject("Excel.Application")
Excel_App.Visible = True
Excel_App.Workbooks.Add
With Excel_App
.Range("A:A").EntireRow.ColumnWidth = 25
.Range("A2").EntireRow.VerticalAlignment = xlCenter
.Range("A2").EntireRow.Font.FontStyle = "Bold"
.Range("A" & CStr(iHeadingRows)).Select
.ActiveCell.FormulaR1C1 = "ABC"
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...