如何在没有任何对话框的情况下通过VB 2010保存Excel文件(例如“另存为”)

时间:2012-03-27 01:13:45

标签: visual-studio-2010 excel

我正在尝试通过VB 2010保存Excel文件,我有这些问题

  1. 如何禁用“另存为”对话框?我尝试了诸如“保存”而不是“另存为”之类的东西,但它不起作用......

  2. 我保存文件后(使用另存为)我无法删除它...(我尝试关闭excel文件,Visual Basic等...)我得到的是一个错误,说它是已经在excel中打开......

  3. 有没有办法让VB向我展示编写excel内容的提示(即 - 当我编写messagebox时 - 它会弹出“显示”以获取帮助。如何为excel代码启用此功能[工作表] .cells.ect。])

  4. 连接:

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

    saveas:

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

    非常感谢

2 个答案:

答案 0 :(得分:4)

我认为Inafiziger已经解决了你的主要问题,它应该是一个香草Save

由于我不清楚你的确是什么(即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(见底部注释)可用于在同一代码中切换两种绑定方法。

答案 1 :(得分:2)

您应该保存工作簿。例如oBook.Save

如果您创建了一个新文件,则需要使用带有效文件名的SaveAs才能在第一时间保存它。