您好我正在尝试格式化由我的MS访问宏创建的excel电子表格。我想选择只包含值的行。所以例如我想选择第一行并将文本换行
我认为这个逻辑可行,但给出了错误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)).WrapText = True
是我按下调试时突出显示的内容
提前致谢
答案 0 :(得分:1)
您可能没有正确关闭文件,因此它保持打开且不可见。检查您的任务管理器您打开了多少个Excel文件。尝试将它们全部关闭。此外,您引用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
。多数民众赞成。