我试图自动将表格从Access导出到Excel报表中。从我对Stack Overflow的研究中,推荐有一个用于导出的VBA代码,然后是用于格式化Excel工作表的另一个代码。我非常喜欢从Access运行Excel工作表的格式,所以我只需按下一个按钮并导出。我绝对讨厌运行这份报告,因为当我有其他紧迫的事情要做时,每个人都需要“现在”。这是公司总裁办公室的工作,所以像我这样的老总就得跳到这里来。尝试运行从Excel访问格式导出表格,获取对象所需的错误
我发现这个建议在这里代码:https://stackoverflow.com/a/14401307/6850333,但我得到的错误“对象变量或带块变量未设置”
Sub FormatACTrade(strFilePath As String) 'I'm running this from another _
sub that exports the tables to excel, I know functions are needed for _
an output but this is a private variable that I'm using within a modle_
so should be ok??
On Error GoTo ErrorHandler
Dim objFile As Object
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(strFilePath)
If objFso.GetExtensionName(objFile.Path) = "xlsx" Then
Set objWorkbook = objExcel.Workbooks.Open(objFile.Path)
For Each sh In objWorkbook.Worksheets
If sh.UsedRange.Address <> "$A$1" Or sh.Range("A1") <> "" Then
With sh
[Do stuff]
End With
End If
Next
objWorkbook.Close True
End If
End Sub
任何建议表示赞赏。我不熟悉编码,我不得不承认有关vba对象,脚本和应用程序的文档很难理解。我知道我没有正确地命名一个对象,但我并不真正了解代码在这条线上做什么Set objWorkbook = objExcel.Workbooks.Open(objFile.Path)
。
如果这是它标记的那一行,那么它就错过了。你永远不会把'objFile'设置为任何东西。 – Comintern
它在编译器中没有被标记,但那是我头脑中的线。你说得对,objFile没有定义。我只是添加了一行'Dim objFile As Object',但现在错误是“Object variable或With block variable not set”,我不知道我应该为objFile放置什么。文件名? –
取决于你打算做什么。我怀疑'objFile.Path'的两个实例都应该是'strFilePath'。 – Comintern