打开空Excel电子表格并从Access VBA写入它不起作用

时间:2011-01-10 13:12:08

标签: excel ms-access vba

我编写了一个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电子表格被打开,但当我尝试写入它并且生成运行时错误时,它仍然是空的。

用户或某些特定设置的某些系统策略是否可能阻止我在其他PC上测试的正常行为? 如果是这样的话,可以做些什么来以最不显眼的方式解决它?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

就这样,这个问题不会没有答案。显然问题的根源是,先前的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