Vba 删除打开的书本
我想创建一本新的工作手册,在其中添加一个列表,然后保存这本书。如果存在,我需要删除以前的变量,然后保存当前变量。这是我的密码:Vba 删除打开的书本,vba,excel,excel-2003,Vba,Excel,Excel 2003,我想创建一本新的工作手册,在其中添加一个列表,然后保存这本书。如果存在,我需要删除以前的变量,然后保存当前变量。这是我的密码: Private Sub GenerateReport_Click() Dim wb As Workbook Dim FilePath As String FilePath = ThisWorkbook.Path + "\CommonReport.xls" Set wb = Workbooks.Add ActiveCell.F
Private Sub GenerateReport_Click()
Dim wb As Workbook
Dim FilePath As String
FilePath = ThisWorkbook.Path + "\CommonReport.xls"
Set wb = Workbooks.Add
ActiveCell.FormulaR1C1 = "a1"
wb.ActiveSheet.Range("B1").Select
ActiveCell.FormulaR1C1 = "b1b"
wb.ActiveSheet.Range("C1").Select
ActiveCell.FormulaR1C1 = "3"
wb.ActiveSheet.Range("D1").Select
ActiveCell.FormulaR1C1 = "4"
wb.ActiveSheet.Range("E1").Select
ActiveCell.FormulaR1C1 = "5"
wb.ActiveSheet.Range("F1").Select
ActiveCell.FormulaR1C1 = "6"
wb.ActiveSheet.Range("G1").Select
ActiveCell.FormulaR1C1 = "7"
wb.ActiveSheet.Range("A1:G1").Select
wb.ActiveSheet.ListObjects.Add(xlSrcRange, wb.ActiveSheet.Range("$A$1:$G$1"), , xlYes).Name = "Ñïèñîê1"
wb.ActiveSheet.Range("A1:G2").Select
Application.DisplayAlerts = False
If Dir(FilePath) = vbNullString Then
wb.SaveAs Filename:=FilePath
Else
SetAttr FilePath, vbNormal
Kill FilePath
End If
End Sub
书打开时是否可以删除。当我要删除打开的书本时,如何处理错误 无法删除打开的工作簿 检查是否使用以下方式打开了同名文件: 如果此文件已打开,请通过将
文件路径
与打开的工作簿(例如工作簿(“CommonReport.xls”).FullName
)进行比较,检查其路径是否与要删除的文件相同,如果是,请使用close命令将其关闭:
Workbooks("CommonReport.xls").Close SaveChanges:=False
我认为没有必要删除工作簿,只需覆盖它即可。如果已打开,请先将其关闭。例如:
Option Explicit
Private Const NEW_BOOK_NAME As String = "CommonReport"
Public Sub Test()
Dim newWorkbook As Workbook
Set newWorkbook = Workbooks.Add
With newWorkbook.ActiveSheet
[a1] = "a1"
[b1] = "b1"
[c1] = "c1"
End With
Dim filePath As String
filePath = ThisWorkbook.Path & "\" & NEW_BOOK_NAME
On Error Resume Next
Workbooks(NEW_BOOK_NAME).Close
On Error GoTo 0
Application.DisplayAlerts = False
newWorkbook.SaveAs filePath
End Sub
Olle Sjögren的想法是可行的 但是简单地使用sheet.usedrange.clear方法清空现有工作表可能会更容易。然后你可以插入你的新数据。
这应该比删除方法快得多。作为旁注。可能最好使用符号AND进行字符串连接
thiswook.Path+“\CommonReport.xls”
-->thiswook.Path&“\CommonReport.xls”
请参阅: