2013-12-17 52 views
1

我們正在從我們的現場辦公室收到一些日常Excel文件,我必須使用一些VBA來清理和重新格式化110列和500行。 正如你所看到的,我有一大堆VBA,我需要將它們保存爲一個宏,我們可以通過運行宏來清理所有新的接收工作表,最後將編輯後的工作表保存爲新工作表通過從UserForm Combobox項目獲取名稱。準確地存儲VBA的地方

現在我的問題是究竟應該在哪裏存儲VBA代碼片段我的意思是,當我打開Visual Basic面板我有這三個選項(據我所知)
A-:運行代碼從Microsoft Excel對象: Sheets1(Sheet1中)
B-:運行代碼從插入模塊
C-:從用戶表單

enter image description here

運行代碼。如果我應該使用選項A或B我怎麼可以叫爲UserForm保存工作表?

感謝

回答

1

我建議你使用模塊(選項B)

選項C去與選項B,生病解釋,你可以創建選項B中的模塊中的子,那麼你可以這樣做:

UserForm1.show 

在選擇BI會被軟件寫這個代碼,而是試圖在此之前我建議你瞭解更多的VBA的

sub ClearWBs() 

'opening workbook 
Workbooks.Open Filename:="c:\book1.xls" 

'your code 

'your code 


'below code for saving and closing the workbook 
Workbooks("book1.xls").Activate 
ActiveWorkbook.Save 
ActiveWorkbook.Close 

end sub 
+0

嗨bto和感謝您的評論,好的,讓我們把它放在哪裏我應該把我的代碼?我的意思是,如果我想清洗牀單,它會在模塊或牀單本身? – user1760110

+0

我更新了我的答案 –

+0

無論你放在哪裏,你的代碼都可以工作。然而,如果你把它放在一個模塊中,它暗示代碼沒有連接到任何特定的表單或Excel工作表 - 這正是你想要的。沒有功能上的差異,但是「正確的」編程習慣會決定你把它放在一個模塊中。 –

0

使用模塊:
如果您的VBA代碼專注於數據彙總和操作,我建議您使用Module(例如您在問題中描述的內容)。

使用表單:
如果你wan't做什麼,需要一個GUI(圖形用戶界面),那麼你就不得不求助於Form在那裏你可以設計自己的GUI。 (例子是,如果你有需要用戶填寫了在其中提供了選擇不同的值多領域)

使用Excel對象:
如果你wan't做的事做在工作表和/或工作簿上發生事件時,例如,無論何時添加宏運行表,或者打開或關閉工作簿宏時,都必須在Excel Object中編寫宏。

這基本上是我的想法,希望這有助於。

0

如果您收到的文件不包含VBA,並且您需要始終對這些文件應用相同的代碼,那麼我建議您將該代碼保存在您的個人工作簿中。

你可以看到如何做到這一點的位置:http://office.microsoft.com/en-ca/excel-help/copy-your-macros-to-a-personal-macro-workbook-HA102174076.aspx

這是好的,因爲你也可以把它綁鍵盤快捷鍵或只是在用它隨時供您使用。

缺點是它只會在每臺計算機的每個用戶會話中設置。你可以做的是將所有代碼都放在一個模塊中,然後將它導入到你的個人工作簿中,如果你改變了會話或者其他人必須這樣做。

完成後,您不必將模塊包含在您的文件中再次接收。