MS Access VBA格式Excel

嗨,我想格式化我的MS访问macros创build一个Excel电子表格。 我想select只有值的行。 所以例如,我想select第一行和文本包装它

我认为这个逻辑会起作用,但给我错误1004(应用程序定义或对象定义的错误)

Dim my_xl_app As Object Dim my_xl_workbook As Object Set my_xl_app = CreateObject("Excel.Application") Set my_xl_workbook = my_xl_app.Workbooks.Open(C:\PATH) For x = 1 To 23 my_xl_workbook.sheets(x).Range("A1",my_xl_workbook.sheets(x).Range("A1").End(xlToright)).WrapText = True Next x 

my_xl_workbook.Sheets(x).Range("A1", my_xl_workbook.Sheets(x).Range("A1").End(xlToRight)).WrapTex‌​t = True是我按下debugging时突出显示的内容

提前致谢

您可能没有正确closures该文件,因此它保持打开状态并且不可见。 检查你的任务pipe理器你打开了多less个excel文件。 尝试closures它们。 此外,您引用了xlToRight ,它是MS Excel Object Library成员,它不在您的应用程序中。

因此,请尝试以下操作:

 Public Sub TestMe() Dim x As Long Dim my_xl_app As Object Dim my_xl_workbook As Object Set my_xl_app = CreateObject("Excel.Application") Set my_xl_workbook = my_xl_app.Workbooks.Open("C:\Users\v.doynov\Desktop\file.xlsx") my_xl_app.Visible = True For x = 1 To my_xl_workbook.Sheets.Count With my_xl_workbook.Sheets(x) .Range("A1", .Range("A1").End(xlToRight)).WrapText = True Debug.Print "Wrapping " & .Range("A1", .Range("A1").End(-4161)).Address & _ " From " & .Range("A1", .Range("A1").End(-4161)).Parent.Name End With Next x my_xl_workbook.Save my_xl_workbook.Close (True) End Sub 

这是我发现-4161 。 在Visual Basic编辑器中添加对MS Excel 14.0 Object Library的引用。

在这里输入图像说明

然后在即时窗口中写入?xlToRight 。 这就够了。