Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel vba隐藏文件打开和文件保存窗口_Vba_Excel - Fatal编程技术网

Excel vba隐藏文件打开和文件保存窗口

Excel vba隐藏文件打开和文件保存窗口,vba,excel,Vba,Excel,我有一个宏可以打开、编辑和保存文件。但这需要一些时间,因此会出现进度条窗口。我不知道如何摆脱它们。我试过: Application.ScreenUpdating = False Application.DisplayStatusBar = False Application.DisplayAlerts = False 但它不起作用。有什么建议吗 编辑:这是我的代码: 我尝试了建议的答案,但没有成功(只是速度变慢了,输出文件夹是空的)。也许我做错了 Sub iterate

我有一个宏可以打开、编辑和保存文件。但这需要一些时间,因此会出现进度条窗口。我不知道如何摆脱它们。我试过:

    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.DisplayAlerts = False
但它不起作用。有什么建议吗

编辑:这是我的代码:

我尝试了建议的答案,但没有成功(只是速度变慢了,输出文件夹是空的)。也许我做错了

Sub iterateThroughFolder()
    '**SETTINGS**
    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.StatusBar = "Starting..."

    '**VARIABLES**
    Dim folderPath As String
    folderPath = "Y:\vba\test_reserves\test_data\"

    '**INVISIBLE APPLICATION**  <---- the part from other answer
   ' Dim app As New Excel.Application
    Dim app As Object
    Set app = CreateObject("Excel.Application")
    app.Visible = False

    '**LOOPING THROUGH THE FOLDER**
    fileTitle = Dir(folderPath & "*.xl??")
    Do While fileTitle <> ""
        'SETTINGS
        Application.DisplayAlerts = False
        Application.StatusBar = fileTitle + "pending: "

        'OPENING FILES
        Dim resultWorkbook As Workbook
        Dim dataWorkbook As Workbook

        'OLD VARIANT:
        'Set resultWorkbook = 
           'Workbooks.Open("Y:\vba\test_reserves\files\rating_template.xls")
        'Set dataWorkbook = Workbooks.Open(folderPath & fileTitle)

        'NEW VARIANT:
        'Set resultWorkbook = app.Workbooks.Add("Y:\vba\test_reserves\files\rating_template.xls")
       ' Set dataWorkbook = app.Workbooks.Add(folderPath & fileTitle)

       'NEXT NEW VARIANT (from this question's answer):
       Set resultWorkbook =app.Application.Workbooks.Open
         ("Y:\vba\test_reserves\files\rating_template.xls ")
       Set dataWorkbook = app.Application.Workbooks.Open(folderPath & 
         fileTitle)

        'REFRESHING CONNECTIONS (?)
        Dim cn As WorkbookConnection
        For Each cn In resultWorkbook.Connections
                cn.Refresh
        Next

        'GETTING THE NAME AND PUTTING IT IN "A1" cell of "B1" list
        Application.StatusBar = Application.StatusBar + "Getting the state name"
        Dim stateName As String
        stateName = dataWorkbook.Worksheets("ðàçäåë 1").Cells(5, 4).Value
        resultWorkbook.Worksheets("B1").Cells(1, 1).Value = stateName


       'SAVING AND CLOSING
        Application.StatusBar = Application.StatusBar + "Saving and closing new rating file"
        resultWorkbook.SaveAs Filename:="Y:\vba\test_reserves\output\" + stateName
        resultWorkbook.Close
        dataWorkbook.Close
        Application.DisplayAlerts = True

        'NEXT FILE
        Application.StatusBar = Application.StatusBar + "Getting next data file"
        fileTitle = Dir()
    Loop
    '**CLEANING THE APP**  <--- from another answer, added it, so it doesn't
    'work now
    app.Quit
End Sub
子文件夹()
“**设置**
Application.ScreenUpdating=False
Application.DisplayStatusBar=False
Application.StatusBar=“正在启动…”
“**变量**
将folderPath设置为字符串
folderPath=“Y:\vba\test\u reserves\test\u data\”

“**不可见应用程序**以下是一些代码,您可以尝试。。。它启动隐藏的Excel应用程序并打开工作簿。您可以使用WB对象处理此工作簿

然而。。。如果操作需要时间(计时器或旋转光标),您仍将使用等待鼠标图标


你试过这个问题吗
因此出现了进度条窗口。
什么进度条窗口?@Siddharth Rout,保存进度,打开进度(文件大到可以显示)。如果文件大,那么它不是很好吗?如果我是一个用户,我不知道发生了什么,我会非常沮丧。:)@Siddharth Rout,有很多文件,经常关注弹出窗口更令人沮丧。。。我宁愿打开宏来做我的事情。。。这是我和同事的宏,所以我们都知道发生了什么。。(甚至可以通过Application.StatusBar,这就足够了)。。。
Dim ExcelApp As Object
Dim WB As Workbook

Set ExcelApp = CreateObject("Excel.Application")
Set WB = ExcelApp.Application.Workbooks.Open("myfile.xlsx")

WB.DoYourStuffWithTheWorkbook

WB.Save
WB.Close