2013-07-31 107 views
2

我在窗體中有一個SaveAs對話框來保存Excel工作表。當我在對話框中單擊取消時,會出現另一個消息框,詢問「您是否要保存對Book1所做的更改?」。我想擺脫這個消息框,因爲用戶已經決定不通過單擊取消......請幫助..感謝保存Excel ...如何在vb.net的對話框中取消用戶單擊後取消消息框?

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim xlApp As Microsoft.Office.Interop.Excel.Application 
    Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook 
    Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet 
    Dim misValue As Object = System.Reflection.Missing.Value 

    Dim myArray(DataGridView1.Rows.Count - 1, DataGridView1.Columns.Count - 1) As Object 

    Dim r As Integer 
    Dim c As Integer 

    xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass 
    xlWorkBook = xlApp.Workbooks.Add(misValue) 
    xlWorkSheet = CType(xlWorkBook.Worksheets.Item("sheet1"), Microsoft.Office.Interop.Excel.Worksheet) 
                               For r = 0 To DataGridView1.Rows.Count - 1 
     For c = 0 To DataGridView1.Columns.Count - 1 
      myArray(r, c) = DataGridView1.Rows(r).Cells(c).Value 
     Next cc 
     xlWorkSheet.Range("A1").Resize(DataGridView1.Rows.Count, DataGridView1.Columns.Count).Value = myArray 
     Dim saveFileDialog As New SaveFileDialog() 
    saveFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*" 
    saveFileDialog.FilterIndex = 2 
    saveFileDialog.RestoreDirectory = True 

    If saveFileDialog.ShowDialog() = DialogResult.OK Then 
     xlWorkSheet.SaveAs(saveFileDialog.FileName) 
     MsgBox(" Your file has been saved") 

    End If 


    xlWorkBook.Close() 
    xlApp.Quit() 
    xlApp = Nothing 
    xlWorkBook = Nothing 
    xlWorkSheet = Nothing                        
End Sub 
+2

小心,「取消」的行爲一般應無損,我不希望一個應用程序在點擊取消關閉和未保存工作簿,取消應始終是一個安全的選擇。 – bendataclear

回答

0

在退出之前試試這個:

xlApp.DisplayAlerts = False 

還是False值傳遞給close方法:

xlWorkBook.Close(False) 
+0

謝謝它的作品............... – user2444712

1

呼叫假close方法不顯示對話框。

xlWorkBook.Close(False) 

More on MSDN

+0

謝謝它的作品... – user2444712