A. excel vba 中如何取得目录下文件的数量
FunctionFileCount(cPathAsString)asIntegercFile=Dir(cPath&"*.*")DoWhilecFile<>""FileCount=FileCount+1cFile=DirLoopEndFunction
这是一段自定义函抄数,袭在Excel VBA编辑模式下,主菜单“插入”——“模块”,将代码粘贴到右侧编辑区。如果在工作表状态下使用,在单元格输入:=FileCount("c:XXX")就可以得出c:XXX文件夹下的所有文件个数(不含子文件夹);如果在代码中使用,则可以:nFileCount=FileCount("c:XXX")得到文件个数。注意:cPath参数必须以“”符号结尾。
B. 用vba如何提取多个txt文件数据
应《中华人民共和国网络安全法》要求,自2017年6月1日起,使用互联网服务需进行帐号实名认证。为保障您的网络帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持。如何用VBA 从TXT文件中提取相关数据输入excel表格?我的TXT文件结构如下 P000000001987456 解释如下: P000000001987456: 这是整个TXT文件的第一行,7个零后…展开我明白可以用导入数据的形式把TXT文件导入到excel 表格(XLS),但是我还是希望能用VBA来处理,因为我给的例子只是数据的一部分,每行数据还包含很多其它内容,而我只想提取相应的部分。谢谢大家。xfwxiao | 浏览 6831 次我有更好的答案发布于2010-11-10 14:32最佳答案Public Sub abc()Dim filename, inputstring As StringDim i As IntegerDim datai = 1filename = "d:\WYKS.txt" '本列TXT文件放在D盘中Open filename For Input Access Read As #1Do While Not EOF(1) Line Input #1, inputstring '读TXT文件一行 data = inputstring If i <> 1 ThenCells(i – 1, 1) = Mid(data, 11, 6) '截取从第11个字符后6个字符Cells(i – 1, 2) = Mid(data, 19, 8) '截取从第19个字符后8个字符Cells(i – 1, 3) = Mid(data, 29, 6) '截取从第29个字符后6个字符
C. vba中要获取文件夹里excel文件的数量,要用什么语句
1.GetAttr 函数语法:GetAttr(pathname)功能:获取一个文件、目录、或文件夹的属性。返回一个 Integer值。返回值由 GetAttr 返回的值,是下面这些属性值的总和:常数 值 描述 vbNormal 0 常规 vbReadOnly 1 只读 vbHidden 2 隐藏 vbSystem 4 系统文件vbDirectory 16 目录或文件夹 vbArchive 32 存档文件 vbalias 64 指定的文件名是别名。只在Macintosh中可用。 说明:若要判断是否设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。示例:Debug.Print GetAttr("F:\test.txt") '若为存档文件,在立即窗口可看到值为32Debug.Print GetAttr("F:\test.txt") '将属性—高级—可存档文件的勾去掉后,值为0为判断一个文件是否只读,可用下法:Debug.Print GetAttr("F:\test.txt") And vbReadOnly若值非零,说明时只读的。2.复制'' (1). 在不需要逐个打开工作簿的情况下,将其有效工作表依次复制到本工作簿的最后.' 新工作表名为:原工作簿名_原工作表名'' Sub 复制工作表() Dim MyObject As Object Dim strPath As String, strFileName As String, strMyName As String Dim shtSheet As Worksheet, strShtName As String Dim intCount As Integer, intShtCount As Integer, i As Integer Application.ScreenUpdating = False strPath = ThisWorkbook.Path strMyName = ThisWorkbook.Name intShtCount = ThisWorkbook.Sheets.Count With Application.FileSearch .NewSearch .LookIn = strPath .SearchSubFolders = False .Filename = ".xls" .FileType = msoFileTypeOfficeFiles If .Execute() > 0 Then intCount = .FoundFiles.Count For i = 1 To intCount strFileName = Replace(.FoundFiles(i), strPath & "\", "") If strFileName <> strMyName Then Set MyObject = GetObject(strPath & "/" & strFileName) '下面进行复制工作 For Each shtSheet In MyObject.Worksheets strShtName = shtSheet.Name If MyObject.Sheets(strShtName).UsedRange.Count > 1 Then MyObject.Sheets(strShtName).Copy After:=ThisWorkbook.Sheets(intShtCount) intShtCount = intShtCount + 1 '重新命名 strShtName = Replace(strFileName, ".xls", "_") & strShtName ThisWorkbook.Sheets(intShtCount).Name = strShtName ThisWorkbook.Sheets("目录").Cells(i + 1, 1) = strShtName End If Next shtSheet End If Next i Else MsgBox "没有找到符合指定文件,请修改参数后重新搜索!", ,"提示" End If End With ThisWorkbook.Sheets("目录").Select Application.ScreenUpdating = TrueEnd Sub''(2) 逐个打开同一目录下的所有工作簿,将其有效工作表依次复制到本工作簿的最后.复制完后关闭它.' 新工作表名为:原工作簿名_原工作表名'Sub 复制工作表_2() Dim MyObject As Object Dim strPath As String, strFileName As String, strMyName As String Dim shtSheet As Worksheet, strShtName As String Dim intCount As Integer, intShtCount As Integer, i As Integer Application.ScreenUpdating = False strPath = ThisWorkbook.Path strMyName = ThisWorkbook.Name intShtCount = ThisWorkbook.Sheets.Count With Application.FileSearch .NewSearch .LookIn = strPath .SearchSubFolders = False .Filename = ".xls" .FileType = msoFileTypeOfficeFiles If .Execute() > 0 Then intCount = .FoundFiles.Count For i = 1 To intCount strFileName = Replace(.FoundFiles(i), strPath & "\", "") If strFileName <> strMyName Then 'Workbooks.Open Filename:=strPath & "/" & strFileName Set MyObject = GetObject(strPath & "/" & strFileName) '下面进行复制工作 For Each shtSheet In Workbooks(strFileName).Worksheets strShtName = shtSheet.Name If Workbooks(strFileName).Sheets(strShtName).UsedRange.Count > 1 Then Workbooks(strFileName).Sheets(strShtName).Copy After:=ThisWorkbook.Sheets(intShtCount) intShtCount = intShtCount + 1 '重新命名 strShtName = Replace(strFileName, ".xls", "_") & strShtName ThisWorkbook.Sheets(intShtCount).Name = strShtName ThisWorkbook.Sheets("目录").Cells(i + 1, 1) = strShtName End If Next shtSheet 'Workbooks(strFileName).Close End If Next i Else MsgBox "没有找到符合指定文件,请修改参数后重新搜索!", ,"提示" End If End With ThisWorkbook.Sheets("目录").Select Application.ScreenUpdating = TrueEnd Sub
D. 求高手:用VBA批量提取多个txt文件的每行指定数据
用Replace Pioneer按照第一列的内容对第二列累加,详细步骤: 1. ctrl-o打开文本文件a.txt 2. ctrl-h打开replace窗口 * replace unit选择Line * 点击Advanced选项页 在insert begin text输入get_values_all() 在run following at the beginning of replace输入clear_values_all() 在run following for each matched unit输入set_value($match[1],get_value($match[1])+$match[2]); 3. 点击Replace即可。 4. ctrl-s保存为b.txt
E. 如何利用VBA获取文件夹里边word文件个数
下面的代码在我电脑上执行通过,希望对比编程有所借鉴:
OptionExplicitSubYgB()Dimn,fn=0f=Dir("d:我的文档exp*.doc*")Whilef<>""n=n+1f=DirWendMsgBox"总共有"&n&"个WORD文件"EndSub
F. VBA里面如何获取已经打开的EXCEL文件的个数
所有打开的Excel文档均包含在Workbooks集合中,可用Workbooks(索引号).name的方式来访问其名字属性(当然也能访问path等属性),也可定义一个workbook对象,用for eche XXXworkbookObject in workbooks的方式,来循环访问各打开的工作薄,想关哪个工作薄,用Close方法关掉即可。
G. excel vba 代码如何取得一个文件夹里有多少个excel文件, 就是计算一个文件夹里有几个e
Sub tt() Dim p$, f$, n% p = ThisWorkbook.Path & "\" '换成你设定的路径 f = Dir(p & "*.xls*") If f <> "" Then Do Until f = "" n = n + 1 f = Dir Loop End If MsgBox nEnd Sub
H. 怎么用VBA批量提取文件包里面的文档第一行数据并导入excel,所有数据累积在一个excel
调试通过的例子的VBA代码如下图:
程序文本代码如下,请把例子中的*.txt修改为*.amp:
Option Explicit
Sub 导入文件的第一行()
Dim p$, f$, i&, s$
p = "d:doc" '文件所在位置,必须以结尾
f = Dir(p & "*.txt") '可能需要修改扩展名
While f <> ""
Open p & f For Input As #1
Input #1, s
Close #1
i = i + 1
Cells(i, 1) = f
Cells(i, 2) = s
f = Dir
Wend
End Sub
I. 如何用VBA批量提取多个txt文件的某列指定数据,TXT文件形式都如下,求指点~
1、提到EXCEL内
Excel怎样快速打开文本文件内容
2、再分列
3、再转到指定数据
J. vba提取多层文件夹的*.xls文件,根据获取到的文件名及路径逐个打开*.xls文件,去判断某几列有多少个数据
一、所需DOS命令
dir [drive:][path] /b > [drive:][path]filename
二、应用实例
如下图,在D盘中,有一个名称为“TQIPC”的文件夹,这个文件夹里面,存放了很多的照片!
看到了没有,文件夹中的照片名称,自动就显示在excel表格中了!
该dos命令非常强大,用好dos命令,可省去我们很多的功夫。
三、知识扩展
下面,再给大家一个例子,即,自动根据照片(根据人物名称),建立文件夹。
如果某个文件夹下面,您存放的是某些人物的照片,并且,每个人物的照片,都使用其名字来命名;这个时候,如何要自动根据人物的自动建立其对应的文件夹,也相当方便!
操作的方法是,先根据上述的方法,获取所有人物的照片的名称,生成EXCEL文件;
然后,在人物名称列前面,插入一列,并输入MD;
接下来,使用查找替换功能,将excel文件中的人物名称,去掉扩展名(只保留名字);
最后,将excel的内容,复制粘贴到记事本中,现在,我们就得到了形如:“MD人物名称”这样的命令格式了。(md 文件名称,该命令格式,是使用来建立文件夹的命令,上述的操作,都是为此做准备!)
将记事本文件保存成为形如:124.bat格式的文件,最后,双击此文件,文件夹名称就自动建立好了!