如何解决使用Excel vba创建Active Sheet的备份副本
我需要将活动工作表的备份副本创建到新工作簿中。 这样就可以在其中仅包含活动工作表的情况下创建新工作簿(无宏,无vba)
我需要在“打开工作表”事件后进行
执行以下操作:
Private Sub Workbook_Open()
ActiveWorkbook.SaveCopyAs "E:\Projects\FolderName\FileName.xlsm"
End Sub
它将复制整个工作簿,其中包含所有vba代码和宏,而不是我所需要的。
有没有一种方法只能复制活动表?
理想情况下,我希望有一个单元格引用(我将文件路径存储在另一个表中名为“ BackupPath”的单独单元格中)。
解决方法
请尝试下一个代码,
Private Sub Workbook_Open()
Dim wb As Workbook,shC As Worksheet
Dim sh As Worksheet,i As Long,strBackup As String,arr As Variant
Set shC = ThisWorkbook.ActiveSheet 'this should be clear...
strBackup = Range(ThisWorkbook.Names("BackupPath")).Value 'extract the string from the named range
Set wb = Workbooks.Add 'open a new workbook
shC.Copy before:=wb.Worksheets(1) 'copy the active sheet before the existing one
If wb.Worksheets.Count > 1 Then
'delete all sheets,except the first
For i = wb.Worksheets.Count To 2 Step -1
Application.DisplayAlerts = False
wb.Worksheets(i).Delete
Application.DisplayAlerts = False
Next i
End If
arr = Split(strBackup,".") 'split the path on the dot "."
'the last array element will be extension
arr(UBound(arr)) = "xlsx" 'change exiting extension with "xlsx"
strBackup = Join(arr,".") 'join the processed array and obtain the correct path
wb.SaveAs strBackup,xlWorkbookDefault 'save the workbook
wb.Close False 'close it without saving
MsgBox "A backup has been done,like " & strBackup
End Sub
,
这就是你想要的吗?
Private Sub Workbook_Open()
Var_Path = "D:...\Wb2.xls"
File1 = ActiveWorkbook.Name
Workbooks.Open Var_Path,ReadOnly:=False
File2 = ActiveWorkbook.Name
Workbooks(File1).Sheets("Feuil1").Copy Before:=Workbooks(File2).Sheets("Feuil3")
End Sub
(在此处查找:Some Forum subject)
要从其他单元格打开,您可以将Var_Path = "D:...\Wb2.xls"
替换为Var_Path = range("A1").text
(考虑到范围A1是您的单元格“ BackupPath”)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。