2013-11-20 59 views
1

因此,我每天都將數據導入Access以用於報告。數據來自不同個人創建的多個電子表格。因爲那些個人喜歡格式化不正確的東西,我創建了一個宏來重新格式化他們的文檔,以便它可以被幹淨地導入到Access中供我使用。很好的工作,但它不必打開每個Excel表來運行這個宏。存儲在Excel中的Excel宏

我想要做的是將Excel宏放入Access中,然後在導入它之前運行格式化代碼。我在接近這個方面有點失落。我知道如何運行已放置在Excel工作表中的宏,但有沒有辦法運行存儲在Access中的宏,該工作在Excel中。我也想過也許可以將宏注入到Excel文檔中,然後運行它。

總結一下,我希望能夠從Access中存儲一個宏,它可以用來改變Excel文件。

這是可能的嗎?如果是這樣如何?還有另一種方法嗎?

+0

/Excel是你使用的是什麼版本的訪問權限?如果他們不到10歲(或更多),則可以在access或excel中插入相同類型的模塊,並在引用其他應用程序後使用幾乎相同的代碼。你可以在Excel中創建一個宏,在個人工作簿級別上運行你的重新格式化多個文件,然後發送信息到訪問。你可以直接通過訪問來做同樣的事情。 – nutsch

回答

2

你要求做的是從Access中自動執行Excel。是的,你可以做到這一點。在Access中,添加一個模塊,添加一個引用到Microsoft Excel對象模型(工具:參考文獻),並使用此框架代碼,讓你開始:

Sub PrepExcelFileForImport() 

    Dim xl As Excel.Application 
    Dim wbk As Excel.Workbook 
    Dim wst As Excel.Worksheet 

    Set xl = CreateObject("Excel.Application") 
    With xl 
    .Visible = True 
    Set wbk = .Workbooks.Open("c:\temp\temp.xlsx") 
    Set wst = wbk.Worksheets("data") 
    With wst 
     ' add your formatting code here, be sure to use qualified references, e.g. 
     .Rows(1).Font.Bold = True 
    End With 
    End With 
    wbk.Close SaveChanges:=True 
    xl.Quit 

End Sub 
+0

我一直在想,所以我忽略了這種方法,非常感謝你 –