如何通过VB 2010无需任何对话框(如“另存为”)保存Excel文件

3

我正在尝试通过VB 2010保存Excel文件,有以下问题:

  1. 如何禁用“另存为”对话框?我尝试了只使用“保存”而不是“另存为”,但它并不起作用...

  2. 在保存文件后(使用“另存为”)我无法删除它...(我尝试关闭Excel文件、Visual Basic等等...),所有我得到的错误都说它已经在Excel中打开了...

  3. 是否有办法让VB显示写Excel代码的提示(例如- 当我写messagebox时,它会弹出“Show”以获取帮助。如何启用此功能来编写Excel代码[worksheets.cells.etc.])

连接:

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

非常感谢!

你使用的是Visual Studio还是Excel VBA? - brettdj
2个回答

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

这段代码可以通过编程方式添加到目标工作簿中,但我怀疑您不需要这样做,因为您应该能够运行简单的“保存”命令。

在(3)处

您需要使用早期绑定来获得intellisense的好处。您当前正在使用oExcel = CreateObject("Excel.Application")进行晚期绑定。常用的方法是使用早期绑定编写代码并使其正常工作,然后将其转换为晚期绑定以发布最终代码。

条件编译(请参见底部的注释)可用于在同一代码中在两种绑定方法之间切换。


2

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

如果您创建了一个新文件,则需要使用SaveAs并提供有效的文件名才能第一次保存它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接