2012-03-27 57 views
3

我試圖保存Excel文件通過VB 2010年,我有這些問題如何保存通過2010 VB一個Excel文件,而無需任何對話框(如「另存爲」)

  1. 我怎樣才能禁用「另存爲」對話框?我試過的東西,如只是「節省」,而不是「另存爲」,但它doesen't工作...

  2. 後,我保存的文件(使用另存爲)我不能刪除它... (我試圖關閉excel文件,Visual Basic等...)我得到的是一個錯誤,說它已經在excel中打開了所有文件...

  3. 有沒有一種方法可以讓VB向我展示寫入Excel中的東西(即 - 當我寫消息框 - 它會彈出 「顯示」 求助我怎樣才能使這個Excel文件的代碼。[worksheets.cells等。])

連接:

Sub Connect() 
    ' Connect to the excel file 
    oExcel = CreateObject("Excel.Application") 
    'Devine the workbook 
    oBook = oExcel.workbooks.open("e:\Words\Heb.xls") 
End Sub 

另存爲:

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click 
    oExcel.SaveAs(oExcel.Path & ".xls") 
End Sub 

非常感謝

+0

您是使用Visual Studio還是Excel VBA? – brettdj 2012-03-27 02:19:41

+0

視覺工作室... – 2012-03-27 13:59:18

回答

2

你應該保存工作簿。例如oBook.Save

如果您創建一個新文件,則需要使用帶有有效文件名的SaveAs以便第一次進行保存。

+0

+1這應該是 – brettdj 2012-03-27 02:33:32

4

我認爲Inafiziger已經解決了您的主要問題,它應該是一個香草Save

由於這是我不清楚你是doind什麼(即Visual Studio中/ VB/BA),那麼

在(1)

我認爲這值得澄清的是,你可以使用代碼如果您要爲用戶提供選擇,則ThisWorkbook模塊將檢測並處理SaveAs。該事件檢測SaveAs,並取消其

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    If SaveAsUI Then 
     MsgBox "You cannot use SaveAs to save this file", , "Save Cancelled!" 
     Cancel = True 
    End If 
End Sub 

該代碼可以編程方式添加到您的目標工作簿,但我懷疑你會需要求助於這給了你應該能夠運行簡單Save

(3)

您需要使用Early Binding得到的intellisense利益。您目前正在使用與oExcel = CreateObject("Excel.Application")的後期綁定。一種常用的方法是編寫代碼並使其與早期綁定一起工作,然後將其轉換爲最終代碼發佈的後期綁定。

Conditional Compilation(請參閱底部的註釋)可用於在同一代碼中的兩種綁定方法之間切換。

+0

+1的額外細節! – lnafziger 2012-03-27 02:38:43

相關問題