【发布时间】:2017-11-12 14:10:38
【问题描述】:
我遇到了一个错误。 我正在尝试创建一个创建、加载和保存 excel 文件的程序。我只使用 Visual Basic,所以请不要用其他语言回答。
该程序旨在创建一个名为“Example”的 excel 文件,或者如果它已经存在则加载它。
If (My.Computer.FileSystem.FileExists("D:\Programming\Example.xlsx")) Then
xlWorkBook.Save()
Else
xlWorkBook.SaveAs(Filename:="D:\Programming\Example.xlsx",
FileFormat:=51)
End If
由于某种原因,它似乎没有这样做,而是创建了一个名为“book1.xlsx”而不是“Example.xlsx”的文件。
当它保存时,它似乎在后台保持 excel 打开。 这是我的完整代码:
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Dim xlApp As New Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Create_Click(sender As Object, e As EventArgs) Handles Create.Click
xlWorkBook = xlApp.Workbooks.Add
xlApp.Visible = True
xlWorkSheet = xlWorkBook.Sheets("Sheet1")
With xlWorkSheet
.Range("A1").Value = "Month"
.Range("A2").Value = "January"
.Range("A3").Value = "February"
.Range("A4").Value = "March"
.Range("A5").Value = "April"
.Range("B1").Value = "Loan Repayment"
.Range("B2").Value = "1000.00"
.Range("B3").Value = "1200.00"
.Range("B4").Value = "1300.00"
.Range("B5").Value = "1600.00"
.Range("A6").Value = "Total Paid"
.Range("B6").Formula = "=Sum(B2:B5)"
End With
Test.Text = xlWorkSheet.Range("A1").Value
End Sub
Private Sub Save_Click(sender As Object, e As EventArgs) Handles Save.Click
If (My.Computer.FileSystem.FileExists("D:\Programming\Example.xlsx")) Then
xlWorkBook.Save()
Else
xlWorkBook.SaveAs(Filename:="D:\Programming\Example.xlsx",
FileFormat:=51)
End If
xlWorkBook.Close()
xlApp.Quit()
ReleaseAll(xlApp)
ReleaseAll(xlWorkBook)
End Sub
Private Sub ReleaseAll(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
End Class
干杯感谢任何帮助。 :D
【问题讨论】:
-
如果你想要 VB.NET 的答案,你应该检查你的标签...
-
我不希望 VB.NET 回答 VBA 和 VB.NET 完全不同。我已经用 VBA 标记了它,并特别说我想要用 VBA。 @t
-
问题中的代码不是 VBA。
Try/Catch/Finally在 VBA 中不存在。Handles在 VBA 中不存在。Imports在 VBA 中不存在 -
对不起,我的错。 @barrowc
-
您特别提到“Visual Basic”,通常表示 VB.NET,而您的代码是 VB.NET,正如@barrowc 指出的那样。
标签: vb.net