2012-08-08 59 views
0

有沒有辦法以CSV文件格式運行Excel宏?CSV中的Excel宏

我正在使用csv模板將文件導出爲CSV,是否可以在CSV格式的模板上編寫宏。我不能用XLS格式。誰可以幫我這個事?

+0

你可以創建一個XLS文件宏並運行它成csv文件 – 2012-08-08 06:54:02

+0

其實我使用CSV模板以及從該模板,這也是CSV報告。這是bieng通過java類完成的,我在那裏修改了xls的擴展名。所以我必須在csv模板中編寫宏,所以當生成報告時,宏運行。 – roshanK 2012-08-08 07:00:10

+0

宏用VBA編寫並從Excel中運行。您是否正在將宏代碼導出到csv文件? – fduff 2012-08-08 07:00:16

回答

3

雖然你不能保存一個CSV文件中的宏您可以

  1. 使用控制器的工作簿,或插件運行在CSV宏觀
  2. 走了一步,編程將代碼添加到CSV文件(例如添加事件處理程序)

如果您提供有關您的更多信息需要做,那麼我們可以幫助上面的路徑。

編輯:它仍然是不明確如何生成CSV文件 - 這是通過Excel或由另一個應用程序完成]

使用皮爾森Application Events example,你可以在底部使用的代碼(從打開的Excel控制器的工作簿)來捕獲增加一個新的CSV文件,然後進行格式化。

如果您需要捉對飛CSV文件的創建,然後一個更復雜的方法,如使用VBscript with WMI是必要的。

Controller Workbook Approach

的ThisWorkbook模塊

Private XLApp As CExcelEvents 

Private Sub Workbook_Open() 
    Set XLApp = New CExcelEvents 
End Sub 

類模塊調用CExcelEvents

Private WithEvents App As Application 

Private Sub App_NewWorkbook(ByVal Wb As Workbook) 
If Wb.FileFormat = xlCSV Then 
MsgBox Wb & " is a Csvfile" 
'your code 
End If 
End Sub 

Private Sub Class_Initialize() 
    Set App = Application 
End Sub 
+0

我需要觸發一個打開的工作簿事件..它實際上格式化CSV報告。 CSV模板在服務器計算機中,是否可以運行代碼,因此當最終用戶從模板生成報告時,打開事件應該在生成的CSV文件中運行。 – roshanK 2012-08-08 07:12:10

+0

+ 1精美的解釋! – 2012-08-08 10:36:25

0

要acheive你想要做什麼,你需要首先創建一個XLS與您所需的宏VB代碼在裏面。然後,您需要將此XLS保存在始終可用的位置(即在HD上或公司網絡上)。然後,您需要在機器的Excel中創建一個自定義按鈕,並將此按鈕鏈接到您想要觸發的VB宏模塊。這就意味着,無論您何時手動打開Excel或通過打開CSV,您都可以在工具欄上使用自定義按鈕,就像其他人一樣。然後,當CSV在Excel中打開時,您可以單擊自定義按鈕,它會從已保存的XLS中觸發您鏈接到的宏。

+0

這和我下面的(1)相同。 – brettdj 2012-08-08 07:07:04

+0

但它的服務器客戶端應用程序...它不實際在所有客戶端機器上創建自定義按鈕.. – roshanK 2012-08-08 07:14:22

+0

對不起,但我沒有閱讀您關於使用控制器工作簿的意見,意思是將外部XLS中的宏添加到快速訪問工具欄 - 這就是爲什麼我提出它的原因,因爲它是在開放工作表上運行外部宏的最快和最簡單的方法(實際上沒有打開宏XLS)。 – 2012-08-08 07:16:36

1

設置:Excel 2010中

保存您創建的個人宏工作簿宏。

詳細

  1. 打開* .csv文件
  2. 錄製宏並將其存儲在個人宏工作簿。
  3. 退出Excel並在消息框詢問您是否要保存對個人宏工作簿所做的更改時單擊保存。

Link to the information source.