首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB脚本不会遍历给定文件夹中的每个文件

VB脚本不会遍历给定文件夹中的每个文件
EN

Stack Overflow用户
提问于 2015-06-20 04:04:13
回答 1查看 52关注 0票数 0

我是VBscript的新手,我想写一个简单的脚本,在一个给定的文件夹位置改变几千个csv文件中的几个单元格。我有一个很好的开始,而且一切似乎都在工作,除了当我运行脚本(从调用脚本的.bat文件)时,它一次只更改和移动3-8个文件。它更改的文件数量是随机的,它并不总是更改5个文件或某些东西。我不确定代码中有什么错误,为什么它不会编辑和移动每个文件,而是一次只做几个文件,以下是我到目前为止所做的,提前感谢您的帮助:

代码语言:javascript
复制
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")
Set colFiles = ObjFSO.GetFolder("C:\Users\xxx\BadCSVs").Files
Set xl = CreateObject("Excel.Application")

For Each objFile in colFiles
  If LCase(objFSO.GetExtensionName(objFile)) = "csv" Then
    Set wb = xl.Workbooks.Open(objFile)
    Set sht = xl.ActiveSheet


      If(sht.Cells(1,11) <> "") Then
        sht.Cells(1,8) = sht.Cells(1,8) & sht.Cells(1,9)
        sht.Cells(1,9) = sht.Cells(1,10)
        sht.Cells(1,10) = sht.Cells(1,11)
        sht.Cells(1,11) = Null

        wb.Save 
        wb.Close True

      Else
        'if file is opened up and has only 10 columns of data, then it makes no changes, then closes it.  
        wb.Close
      End If
  End If

Next
xl.Quit
EN

回答 1

Stack Overflow用户

发布于 2015-06-20 04:12:29

你邪恶的全球

代码语言:javascript
复制
On Error Resume Next

会隐藏错误。禁用/删除它,然后再次测试。

你的

代码语言:javascript
复制
wb.Close SaveChanges=True

传递SaveChanges (未定义/空)与布尔文字True比较的布尔结果。也许你复制了VBA代码

代码语言:javascript
复制
wb.Close SaveChanges:=True 

(标记冒号)在VBScript中是不合法的?

代码语言:javascript
复制
Set xl = CreateObject("Excel.Application")

应该与一个

代码语言:javascript
复制
xl.Quit

如果在循环中调用Excel ,请在此处终止它。我会尝试从循环中启动/退出Excel,但您应该仔细测试这种方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30946421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档