如何遍历文件夹下所有excel文件 excel里如何循环遍历变量

经验直达:

  • excel里如何循环遍历变量
  • 如何遍历文件夹下所有excel文件
  • excel如何遍历一列的指定数据

一、excel里如何循环遍历变量


Option Explicit
Dim x1, x2, x3, x4, a

Sub bianli()

a = 1

For x1 = 1 To 10
Range("A1") = x1

For x2 = 1 To 10
Range("A2") = x2

For x3 = 1 To 10
Range("A3") = x3

For x4 = 1 To 10
Range("A4") = x4

Range("B" & a) = x1x2x3x4
Range("C" & a) = x1 * x2 * x3 * x4
a = a1

Next x4
Next x3
Next x2
Next x1

End Sub


二、如何遍历文件夹下所有excel文件


使用excel提取文件夹中的所有文件名称的方法主要有以下两个:
1、在那个文件夹内新建一个.TXT文件(如wenjian.txt),用记事本单开输入
dir> 1.txt
保存退出
将刚才的.TXT(wenjian.txt)更名为.bat文件(wenjian.bat)
双击wenjian.bat文件运行一次,在文件夹内多出一个1.txt文件
打开1.txt文件,将其中的内容粘贴到Excel中,数据——分列处理就可以得到你要的文件名列表了!
2、VBA(2003版)
在那个文件夹下新建Excel文件,打开新建的Excel文件,右击工作表标签(如Sheet1),查看代码——在代码编辑器中输入以下代码
Sub Test()
Dim i As Integer
Dim strPath As String
strPath = ThisWorkbook.Path
With Application.FileSearch
.LookIn = strPath
.SearchSubFolders = True
.Filename = "*.*"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Range("A" & i) = .FoundFiles(i)
Next i
End If
End With
End Sub
回到Excel表格中,工具——宏——宏——选择Sheet1.Test——执行

方法一简单的操作就可以,方法二需要对程序有一定的了解 , 方法二通用性比较强,需要的时候执行一下就可以,更快捷 。


三、excel如何遍历一列的指定数据


【如何遍历文件夹下所有excel文件 excel里如何循环遍历变量】Sub 提取() Dim DataWorkbook As Workbook '库存单.xls工作簿 Dim DataSheet As Worksheet, DataSheetName As String 'DataSheet=当前操作的工作表,DataSheetName=当前操作工作表的表名 Dim HuizongSheet As Worksheet '汇总单工作表 Dim GoodCount As Long Dim GoodArr, GoodArrB() Dim i As Long, j As Long Application.ScreenUpdating = False On Error Resume Next Set DataWorkbook = GetObject(ThisWorkbook.Path & "库存单.xls") If Err > 0 Then MsgBox "没有找到 库存单.xls , 请把 库存单.xls 与 汇总.xls 放在同一目录下再运行此程序 。", vbExclamation Exit Sub End If Set HuizongSheet = Worksheets("汇总单") GoodCount = 0 '产品计数归零 For Each DataSheet In DataWorkbook.Sheets '遍历每个库存单工作表 DataSheet.Activate With DataSheet GoodArr = .Range([c2], .[h65536].End(3)) '把库存数据的 C-H列 装进数组 'GoodArr(1,n) n= 1:C产品名称 2:D空 3:E进货数量 4:F总数 5:G进货次数 6:H进货时间 For i = 1 To UBound(GoodArr) If Len(GoodArr(i, 4)) Then '总数不为空时,认定找到一个产品 GoodCount = GoodCount1 '产品数加1 ReDim Preserve GoodArrB(1 To 2, 1 To GoodCount) GoodArrB(1, GoodCount) = DataSheet.Name & "-" & GoodArr(i, 1) '产品名称 GoodArrB(2, GoodCount) = "进货时间: " & GoodArr(i, 6) '进货时间 ElseIf Len(GoodArr(i, 6)) Then '总数为空,且进货时间不为空 GoodArrB(2, GoodCount) = GoodArrB(2, GoodCount) & " " & GoodArr(i, 6) '累加进货时间 End If Next End With Next DataWorkbook.Close '关闭打开的 库存单.xls HuizongSheet.[a1].Resize(GoodCount, 2) = Application.Transpose(GoodArrB) '把提取出的数据显示在汇总单工作表上 Application.ScreenUpdating = True End Sub

相关经验推荐