Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 将工作簿另存为csv文件时创建过多工作簿_Excel_Vba - Fatal编程技术网

Excel 将工作簿另存为csv文件时创建过多工作簿

Excel 将工作簿另存为csv文件时创建过多工作簿,excel,vba,Excel,Vba,vba将复制一个范围-->创建一个新工作簿-->将其另存为csv,我设法访问了以下内容,但它打开了太多的工作簿,即使将它们另存为csv,它也会使它们保持打开状态 我已经试过了,但它仍然不起作用,我能做些什么来阻止它:( 您需要学习如何使用工作簿对象,这些对象在打开时设置好,以后可以用来关闭它们,而不是依赖于当时的活动。请参阅您是否尝试过wbNew.close而不是ActiveWorkbook.close@kiating是的,我尝试过使用wb.New.close,但它仍然打开工作簿,太多了,我认为

vba将复制一个范围-->创建一个新工作簿-->将其另存为csv,我设法访问了以下内容,但它打开了太多的工作簿,即使将它们另存为csv,它也会使它们保持打开状态

我已经试过了,但它仍然不起作用,我能做些什么来阻止它:(


您需要学习如何使用工作簿对象,这些对象在打开时设置好,以后可以用来关闭它们,而不是依赖于当时的活动。请参阅您是否尝试过
wbNew.close
而不是
ActiveWorkbook.close
@kiating是的,我尝试过使用wb.New.close,但它仍然打开工作簿,太多了,我认为问题在于,它打开一个新工作簿(xls),然后将其保存在csv中,而不是直接保存在csv中,因此它会保留xls中打开的工作簿,并将另一个工作簿保存为csv
        Columns("A:F").Select
        Selection.Copy

        Workbooks.Add
        ActiveSheet.Paste

        Dim wbNew As Workbook
        Dim strFileName As String

        With ActiveSheet
            strFileName = .Range("A2").Value
            .Copy
        End With

        Set wbNew = ActiveWorkbook

        wbNew.SaveAs ThisWorkbook.Path & "\" & strFileName, FileFormat:=xlCSV, CreateBackup:=False

            Application.DisplayAlerts = False

        ActiveWorkbook.Close

        Workbooks("Paul_Automation_Project_Ver2.xlsm").Activate

        Next

    End Sub