Excel 循环浏览文件夹中的文件并计数
我有这个VBA代码来计算保存在文件夹中的所有excel文件中所有不为零的值,并在包含宏的工作簿中打印结果。我遇到的问题是,它一次又一次地打开同一个文件,而不是移动到下一个文件Excel 循环浏览文件夹中的文件并计数,excel,vba,loops,countif,Excel,Vba,Loops,Countif,我有这个VBA代码来计算保存在文件夹中的所有excel文件中所有不为零的值,并在包含宏的工作簿中打印结果。我遇到的问题是,它一次又一次地打开同一个文件,而不是移动到下一个文件 Sub RealCount() Dim file As String Dim row As Integer Dim wb As Workbook row = 2 file = Dir("\\Daglig rapport\KPI Marknadskommunikation\FEB\*
Sub RealCount()
Dim file As String
Dim row As Integer
Dim wb As Workbook
row = 2
file = Dir("\\Daglig rapport\KPI Marknadskommunikation\FEB\*.xl??")
Do While file <> ""
Set wb = Workbooks.Open("\\Daglig rapport\KPI Marknadskommunikation\FEB\*.xl??")
Call ZeroCount
file = Dir("\\Daglig rapport\KPI Marknadskommunikation\FEB\*.xl??")
Loop
End Sub
下面是一些让它工作的建议: 使用path变量保留文件夹位置并使代码更易于阅读 修复工作簿。Open参数应该是实际的文件路径,我有点惊讶Excel的工作簿。Open实际上可以使用通配符,如*或? 检查ZeroCount是否不调用任何Dir函数。如果您这样做了,那么Excel很可能会重新设置调用Dir的功能,以正确获取循环中的下一个文件。如果您发现这种情况正在发生,并且必须在这个循环中完全调用Dir,那么您可以首先循环所有Dir值并将它们存储到一个数组中。然后进行另一个循环,通过该数组调用ZeroCount或需要在其中使用Dir的任何代码 以下是前两点需要注意的示例:
Sub RealCount()
Dim path as String
Dim file As String
Dim row As Integer
Dim wb As Workbook
path = "\\Daglig rapport\KPI Marknadskommunikation\FEB\"
row = 2
file = Dir(path & "*.xl??")
Do While file <> ""
Set wb = Workbooks.Open(path & file)
Call ZeroCount
row = row + 1 ' I assume you want to increment row each time as well maybe?
file = Dir()
Loop
End Sub
有关使用VBA的Dir的更多示例,请参见此处:
向我们展示您已经尝试过的内容,您被卡住的地方等。这不是代码编写服务堆栈溢出不是代码为我的网站。请发布您尝试过的不起作用的代码。第二次调用dir应该只使用dir noparameters@Shadow当前位置已尝试,但仍不起作用。