excel 关闭工作表并打开另一个同名工作表

vaj7vani  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(126)

大家早上好!我在我的公司遇到了一个问题,有些人复制了一个官方的电子表格在他们的桌面上编辑。我已经设法使MsgBox警告说,复制的文件不是官方的,毕竟官方几乎每天都收到改进。但我想把一个选项,建议打开正式文件,而不是副本,但我不能使Excel关闭第一个文件(副本)和打开第二个(正式),因为他们有完全相同的名称。可以用VBA来实现吗?
(翻译:Bing Translator)
我尝试了以下方法:

Application.OnTime Now, "reabrir"
ThisWorkbook.Close True

字符串
还有

Sub reabrir()

Dim wb As Workbook
    
Set wb = Workbooks.Open("H:\Projeto de Desenvolvimento de Produtos (PDP)\52 - REUNIÃO DIÁRIA\REUNIÃO DIÁRIA - INDIVIDUAL.xlsm")

End Sub


但这不起作用,excel打开相同的文件(非官方副本)。

c3frrgcw

c3frrgcw1#

你可以用这样的东西打开文件。
这将在temp文件夹中创建一个bat文件,并在Excel关闭时运行它。

MyFile = Environ("Temp") & "\cmd.bat"
    
    fnum = FreeFile()
    Open MyFile For Output As #fnum
    ' three seconds delay to make sure the file is closed
    If Application.OperatingSystem = "Windows (32-bit) NT 5.01" Then
        Print #fnum, "ping -n 3 127.0.0.1>nul"
    Else
        Print #fnum, "timeout /T 3 >nul"
    End If
    Print #fnum, "start excel ""H:\Projeto de Desenvolvimento de Produtos (PDP)\52 - REUNIÃO DIÁRIA\REUNIÃO DIÁRIA - INDIVIDUAL.xlsm"""
    Close #fnum
    
    Shell MyFile, vbNormalFocus
    On Error Resume Next
    Application.DisplayAlerts = False
    ActiveWorkBook.close

字符串
这将强制Excel关闭,因为它将DisplayAlerts设置为false,所以最好确保打开的文件具有将其再次设置为true的workbook_open。

svdrlsy4

svdrlsy42#

我可以用这个命令来实现它:

Shell "C:\WINDOWS\explorer.exe """ & "H:\Projeto de Desenvolvimento de Produtos (PDP)\52 - REUNIÃO DIÁRIA\REUNIÃO DIÁRIA - INDIVIDUAL.xlsm", vbNormalFocus
ThisWorkbook.Close Savechanges:=False

字符串
我不知道这是否对每个人都有效,但到目前为止,它是有效的!

相关问题