【发布时间】:2018-03-22 22:36:47
【问题描述】:
我有一个 Excel 加载项,我尝试使用该加载项插入代码,以便在满足某些条件时自动重命名工作簿。从我们的存储库导出时,所有工作簿都具有相同的名称,这导致“Excel 无法同时打开两个具有相同名称的工作簿”错误一遍又一遍地发生。当用户单击加载项中的按钮时,我已经让代码工作,但我尝试通过将代码放在加载项的“ThisWorkbook”部分来做同样的事情似乎不起作用。有没有办法通过插件做到这一点?
请在下面找到我的代码。
Private Sub Workbook_Open()
Dim wbPath As Variant, wbNewname As Variant, newPath As Variant, wbname As Variant
Dim fileExtension As Variant
If ActiveWorkbook.Name Like "SR.*" Or ActiveWorkbook.Name Like "SR (#).*" And Application.ActiveWorkbook.Path Like "*Content.IE5*" Then
Excel.Application.DisplayAlerts = False
wbname = ActiveWorkbook.Name
fileExtension = Right(wbname, Len(wbname) - InStrRev(wbname, ".") + 1)
wbPath = Application.ActiveWorkbook.Path
wbNewname = "SR" & Int((465480 - 1 + 1) * Rnd + 838588)
newPath = wbPath & "\" & wbNewname & fileExtension
ActiveWorkbook.SaveAs Filename:=newPath
Excel.Application.DisplayAlerts = True
Set wbPath = Nothing
Set wbNewname = Nothing
Set newPath = Nothing
Set wbname = Nothing
Set fileExtension = Nothing
End If
End Sub
【问题讨论】:
-
由于您必须在打开工作簿之前重命名它并且
Workbook_Open子在您打开它之后运行,所以我认为这不会起作用 -
@CallumDA 就算是在工作簿打开之后发生也很够了
-
如果你确定,那我一定是误解了你的问题
-
@CallumDA 即使打开后重命名工作簿,它仍然可以解决问题,因为任何跟随它的专家都不会有相同的工作簿名称
-
您无法重命名已打开的文件。你能做的最好的就是用不同的名字保存一个副本......这就是你的代码似乎正在做的事情。