VBS重新打开已打开的Excel文件
我是一个vbs的新手,正在尝试如何重新打开excel文件。 我在一个文件夹中有100多个excel,我需要一个接一个地打开它们并运行宏。 除了已经打开的文件外,它工作得非常好。我想重新打开并编辑它们。 你能告诉我怎么做吗? 下面是代码:VBS重新打开已打开的Excel文件,excel,vba,vbscript,Excel,Vba,Vbscript,我是一个vbs的新手,正在尝试如何重新打开excel文件。 我在一个文件夹中有100多个excel,我需要一个接一个地打开它们并运行宏。 除了已经打开的文件外,它工作得非常好。我想重新打开并编辑它们。 你能告诉我怎么做吗? 下面是代码: Const sRootFolder = "C:\test" Dim oFSO, oFile ' File and Folder variables Dim xlApp, xlBook, objWorkbook Start Sub Start()
Const sRootFolder = "C:\test"
Dim oFSO, oFile ' File and Folder variables
Dim xlApp, xlBook, objWorkbook
Start
Sub Start()
Initialize
ProcessFilesInFolder sRootFolder
Finish
End Sub
Sub ProcessFilesInFolder(sFolder)
' Process the files in this folder
For Each oFile In oFSO.GetFolder(sFolder).Files
If IsExcelFile(oFile) Then ProcessExcelFile oFile.Path
Next
End Sub
Sub Initialize()
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set xlApp = CreateObject("Excel.Application")
End Sub
Sub Finish()
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
Set oFSO = Nothing
End Sub
Function IsExcelFile(oFile)
IsExcelFile = (InStr(1, oFSO.GetExtensionName(oFile), "xls", vbTextCompare) > 0) And (Left(oFile.Name, 1) <> "~")
End Function
Sub ProcessExcelFile(sFileName)
Set xlBook = xlApp.Workbooks.Open(sFileName, 0, True)
Set objWorkbook = xlApp.Workbooks.Open(sFileName)
xlApp.Run "macro"
End Sub
Sub Save()
xlBook.Save
xlBook.Close
xlApp.Quit
WScript.Echo "Finished."
End Sub
Const sRootFolder=“C:\test”
文件和文件夹变量的大小
Dim xlApp、xlBook、objWorkbook
开始
次启动()
初始化
ProcessFileInfoldersRootFolder
完成
端接头
子进程文件信息文件夹(sFolder)
'处理此文件夹中的文件
对于oFSO.GetFolder(sFolder.Files)中的每个文件
如果是IsExcelFile(oFile),则处理文件oFile.Path
下一个
端接头
子初始化()
Set of so=CreateObject(“Scripting.FileSystemObject”)
设置xlApp=CreateObject(“Excel.Application”)
端接头
次表面处理()
xlApp.退出
设置xlBook=Nothing
设置xlApp=Nothing
一组SO=零
端接头
函数IsExcelFile(oFile)
IsExcelFile=(InStr(1,of so.GetExtensionName(oFile),“xls”,vbTextCompare)>0)和(Left(oFile.Name,1)”~)
端函数
子进程Excel文件(sFileName)
设置xlBook=xlApp.Workbooks.Open(sFileName,0,True)
设置objWorkbook=xlApp.Workbooks.Open(sFileName)
xlApp.运行“宏”
端接头
子存储()
xlBook.Save
书本,关上
xlApp.退出
Echo“已完成”
端接头
是否要重新打开并丢失对已打开文件所做的任何更改,还是只激活已打开的文件?如果更改丢失不成问题,则在创建自动化对象之前,请先关闭所有EXCEL.exe进程。是的,我只想重新打开文档并丢失所做的任何更改。我已尝试添加以下两项子开始前的行-Dim oShell:Set oShell=CreateObject(“WScript.Shell”)
oShell.Run“taskkill/im EXCEL.EXE”,True
和结束子结束后的另一个taskkill行。不幸的是,它不能正常工作。