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
Excel 将主工作簿VBA应用于1000个文件无效_Excel_Vba - Fatal编程技术网

Excel 将主工作簿VBA应用于1000个文件无效

Excel 将主工作簿VBA应用于1000个文件无效,excel,vba,Excel,Vba,按照说明,我尝试使用以下代码运行宏: Sub ay1() Dim fileName, Pathname As String Dim wb As Workbook Pathname = "/Users/ayy/Downloads/Folder1/STATS1/" fileName = Dir(Pathname & "*.csv") Do While fileName <> "" Set wb = Workbooks.Open(Pathname & fileNam

按照说明,我尝试使用以下代码运行宏:

Sub ay1()
Dim fileName, Pathname As String
Dim wb As Workbook
Pathname = "/Users/ayy/Downloads/Folder1/STATS1/"
fileName = Dir(Pathname & "*.csv")
Do While fileName <> ""
    Set wb = Workbooks.Open(Pathname & fileName)
    DoWork wb
    wb.Close SaveChanges:=True
    fileName = Dir()
    Loop
End Sub

Sub DoWork(wb As Workbook)

With wb


    Selection.AutoFilter
            ActiveSheet.Range("$A$1:$C$191").AutoFilter Field:=3, Criteria1:="="
            Range("C2:C190").Select
            Selection.EntireRow.Delete
            ActiveSheet.Range("$A$1:$C$96").AutoFilter Field:=3
            Range("E95").Select
            ActiveWorkbook.Save
            ActiveWindow.Close

    End With
End Sub
Sub-ay1()
Dim文件名,路径名为字符串
将wb设置为工作簿
Pathname=“/Users/ayy/Downloads/Folder1/STATS1/”
fileName=Dir(路径名和“*.csv”)
文件名“”时执行此操作
设置wb=Workbooks.Open(路径名和文件名)
销钉wb
wb.Close SaveChanges:=真
fileName=Dir()
环
端接头
子工作(wb作为工作簿)
与wb
自动筛选
ActiveSheet.Range(“$A$1:$C$191”)。自动筛选字段:=3,标准1:=”
范围(“C2:C190”)。选择
Selection.EntireRow.Delete
ActiveSheet.Range(“$A$1:$C$96”)。自动筛选字段:=3
范围(“E95”)。选择
活动工作簿。保存
活动窗口,关闭
以
端接头
我试图将其保存在“主工作簿”中,该工作簿在所有.csv文件所在的同一目录中启用了宏。然后单击run宏并选择ay1

出于某种原因,我的任何文件都没有运行此功能,我想知道为什么会出现这种情况。我没有收到任何错误,也没有对我的文件做任何处理


任何帮助或指导都将不胜感激

块一起使用:您需要使用前导的
将引用与
wb
关联起来

Sub DoWork(wb As Workbook)

    With wb.Sheets(1)
        .UsedRange.AutoFilter
        .Range("$A$1:$C$191").AutoFilter Field:=3, Criteria1:="="
        .Range("C2:C190").EntireRow.Delete
        .Range("$A$1:$C$96").AutoFilter Field:=3
    End With
    wb.Save
    wb.Close
End Sub

您是否缺少路径名中的驱动器?或者你可能在Mac电脑上?另外,
DoWork
中的
With
块没有任何作用。是的,我正在使用Mac。我有点困惑,为什么嫁妆里的积木什么都不做@TIM WILLIAMS当您使用
With
时,您使用一个前导
With
块内的引用绑定到
With
语句的主题对象。由于您的计算机在Mac上-您应该注意,
Dir()
不支持通配符-您需要遍历所有文件并检查它们的名称以找到您想要的文件。编辑-我想它现在在Office 2016+上确实有效,我正在Office 2016+上工作,所以如果是这样的话,并且目录不是问题。。您认为可能存在什么问题?您是否尝试过调试?您的代码是否检测到任何文件?