![](/img/trans.png)
[英]MS Access VBA convert query output to Excel format but not saving anywhere
[英]MS Access VBA format Excel
嗨,我正在尝试格式化由我的 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
是我按下调试键时突出显示的内容
提前致谢
您可能没有正确关闭文件,因此它保持打开状态且不可见。 在您的任务管理器中检查您打开了多少个 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
。 这已经足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.