Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBS重新打开已打开的Excel文件_Excel_Vba_Vbscript - Fatal编程技术网

VBS重新打开已打开的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()

我是一个vbs的新手,正在尝试如何重新打开excel文件。 我在一个文件夹中有100多个excel,我需要一个接一个地打开它们并运行宏。 除了已经打开的文件外,它工作得非常好。我想重新打开并编辑它们。 你能告诉我怎么做吗? 下面是代码:

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行。不幸的是,它不能正常工作。