2012-03-28 25 views
4

我目前正在研究一個項目,該項目需要我編寫一個(看似無盡的)一系列宏來重現我們的分析師設計的數據透視表。細節發生了變化,但從示例到示例的代碼基本相同。是否可以從python創建/編輯excel宏?

我想基於少數選項編程生成vba代碼,然後將宏添加到給定的工作表中。是否有可能使用win32com或其他創建與python的Excel宏?是否有可能從另一個Excel宏創建一個Excel宏?任何其他想法?

項目背景,我有一個Python腳本,執行以下操作:

  • 拉谷歌分析數據
  • 做各種分析
  • 結果寫入到excel
  • 觸發預先寫好的宏將數據轉換爲精美格式的數據透視表
  • 將它發送給可能實際未讀取它的人
+0

相關:http://stackoverflow.com/questions/1742471/how-to-use-py-and-python-win32com-to-save-as-excel-file – JMax 2012-03-28 18:37:47

+0

而不是採取某種樞紐配置設置,使用那些編寫一個VBA宏,然後運行該宏,僅僅採取設置並將它們直接應用到相關的數據透視表中是不是更容易? – 2012-03-28 19:50:02

+0

蒂姆,可能是的,並感謝您的建議。這項工作很快就會擴展到數據透視表的領域之外,所以更通用的解決方案會很好。另外,我不確定我是否明亮/有足夠的耐心使用太多的COM,但我會牢記這一點。 – DylanHarper 2012-03-28 19:54:54

回答

1

是的,你可以用另一個Excel宏創建一個Excel宏。爲此,您需要告訴Excel以信任對VBA項目對象模型的訪問。 (該設置位於信任中心的宏選項中。)我不知道您是否可以使用Python,但如果可以的話,您可能還需要告訴Excel它是否正常。

爲便於編碼,如果您在Excel中執行此操作,請添加對應用程序擴展性 Micorsoft Visual Basic的參考號

您可能也想看看MZ-Tools 3.0我覺得這對於向項目添加默認\通用代碼非常有幫助。

另一方面,您的項目聽起來已經熟悉代碼重用。如果公共數據透視表代碼位於一個類/模塊中,那麼將它從一個打開的Excel項目複製到另一個很容易。 (只需在Project Explorer窗口中單擊並拖動即可。)也可以將其導出到文本文件,並稍後將其導回到另一個項目。

相關問題