VBA:自动保存&;关闭除宏工作簿外的所有当前工作簿

VBA:自动保存&;关闭除宏工作簿外的所有当前工作簿,vba,excel,Vba,Excel,我正在尝试关闭除宏工作簿和.SaveAs my path之外的所有当前打开的工作簿,但我希望路径是宏工作簿[D1]中的指定单元格。我还希望将文件名保存为当前保存并关闭的工作簿中的单元格A1。现在我被卡住了。我列出了当前正在使用的代码,这段代码遇到的问题是,它在当前选定工作簿的单元格A1中保存为名称,而不是代码当前循环使用的工作簿。我希望这是有道理的 Option Explicit Public ThisFile As String

我正在尝试关闭除宏工作簿和.SaveAs my path之外的所有当前打开的工作簿,但我希望路径是宏工作簿[D1]中的指定单元格。我还希望将文件名保存为当前保存并关闭的工作簿中的单元格A1。现在我被卡住了。我列出了当前正在使用的代码,这段代码遇到的问题是,它在当前选定工作簿的单元格A1中保存为名称,而不是代码当前循环使用的工作簿。我希望这是有道理的

            Option Explicit
            Public ThisFile As String
            Public Path As String

            Sub CloseAndSaveOpenWorkbooks()
                Dim Wkb As Workbook
                ' ThisFile = ActiveWorkbook.Sheets(1).Range("A1").Value ** Commented out as this piece of code was not working as intended **
                Path = "C:\Users\uuis\Desktop"

                With Application
                    .ScreenUpdating = False

                     '       Loop through the workbooks collection
                    For Each Wkb In Workbooks

                        With Wkb

                            If .Name <> ThisWorkbook.Name Then
                             '               if the book is read-only
                             '               don't save but close
                            If Not Wkb.ReadOnly Then

                                .SaveAs Filename:=(Path & "\" & ActiveWorkbook.Sheets(1).Range("A1").Value & ".xls"), FileFormat:=xlExcel8

                            End If

                             '               We save this workbook, but we don't close it
                             '               because we will quit Excel at the end,
                             '               Closing here leaves the app running, but no books

                                .Close

                            End If

                        End With

                    Next Wkb


                    .ScreenUpdating = True
                    ' .Quit 'Quit Excel
                End With
            End Sub
选项显式
将此文件作为字符串公开
作为字符串的公共路径
子关闭并保存打开的工作簿()
将Wkb设置为工作簿
'ThisFile=ActiveWorkbook.Sheets(1).Range(“A1”).Value**被注释掉,因为这段代码没有按预期工作**
Path=“C:\Users\uuis\Desktop”
应用
.ScreenUpdate=False
'循环浏览工作簿集合
对于工作簿中的每个Wkb
与西九龙文娱艺术区
如果。命名此工作簿。然后命名
“如果这本书是只读的
“不要保存,而是关闭
如果不是Wkb.ReadOnly,则
.SaveAs文件名:=(路径和“\”&ActiveWorkbook.Sheets(1).Range(“A1”).Value和“.xls”),文件格式:=xlExcel8
如果结束
'我们保存此工作簿,但不关闭它
“因为我们最终会退出Excel,
“关闭此处会使应用程序运行,但不会出现书籍
关
如果结束
以
下一个西九龙巴士站
.ScreenUpdate=True
“.Quit”退出Excel
以
端接头
应该是

Wkb.Sheets(1).Range("A1").Value
Wkb.Sheets(1).Range("A1").Value