A. 如何用VBA批量提取多个txt文件的某列指定数据,TXT文件形式都如下,求指点~
1、提到EXCEL内
Excel怎样快速打开文本文件内容
2、再分列
3、再转到指定数据
B. excel用vba自动提取多个txt文件中指定位置多个字符到excel指定单元格中
19:44开始解答这个问题,那时你还没有上传附件,试试能不能用吧
Sub批量提取TXT文件指定位置数据()
DimFsoAsObject,oFileAsObject
Dimtx,tx0,txkAsString
Dimr1,r2AsInteger
r1=2'从第2行开始写入
'将需写入数据的列转换为文本格式,防止0开头的数字数据写入错误
[A:A].NumberFormatLocal="@"
[C:C].NumberFormatLocal="@"
[E:E].NumberFormatLocal="@"
[G:G].NumberFormatLocal="@"
[K:K].NumberFormatLocal="@"
SetFso=CreateObject("Scripting.FileSystemObject")'引用fso对象
ForEachoFileInFso.GetFolder(ThisWorkbook.Path&"数据源").Files'遍历当前工作簿路径下的数据源文件夹内所有文件
IfoFile.NameLike"*.txt"Then'如果拓展名为TXT
r2=1
OpenoFileForInputAs#1'读取文件
DoWhileNotEOF(1)'遍历行至文件尾
LineInput#1,tx'输出行为字符串
IfLen(Trim(tx))>0Then'如果非空个字符大于0
Ifr2=1Then
Cells(r1,"A").Value=Mid(tx,2,2)'第一行的第2-3个字符放到A列
txk=Mid(tx,2,2)'txk用于取K列数据
EndIf
Ifr2=2Then
Cells(r1,"C").Value=Left(Right(tx,7),3)'第二行从右往左取7个字符,再取前3个,放到C列
txk=txk&Left(Right(tx,7),3)'txk用于取K列数据
EndIf
Ifr2=3ThenCells(r1,"E").Value=Mid(tx,WorksheetFunction.Find("ABCDEF",tx)+8,4)'第三行找到ABCDEF的起始位置,从A向后数8个字符开始取,取4个
IfLeft(tx,6)="HIJKLM"ThenCells(r1,"G").Value=Left(Right(tx0,6),4)'某一行是HIJKLM开头的,该行的上一行数据从右往左取6个字符,再取前4个,放到G列
IfLeft(tx,Len(txk))=txkThenCells(r1,"K").Value=Mid(tx,6,6)'某一行是提取之后的A2&C2中的数据开头的,第6-11个字符放到K2单元格
tx0=tx'将此行字符存入临时变量作为上一行
EndIf
r2=r2+1
Loop
Close#1
EndIf
r1=r1+1
NextoFile
SetFso=Nothing
EndSub
GIF动图
C. Excel怎样批量提取文件夹和子文件夹所有文件
主要的方法有:
一、编程的方法,如Excel自带的VBA,以及其他编程方法,如Python
二、Excel自带的Power Qurey数据处理工具,Excel2010以上版本支持,但2010和2013要另外下载安装,而2016以上版本安装后就已默认安装。
新建一个Excel工作簿,在工作簿的工作表中,数据菜单——获取和转换数据——获取数据——来自文件——从文件夹,浏览到要提到文件名的文件夹,打开。就会把文件夹(包括子文件夹)下的所有文件导入到一个预览对话框中,对话框中已可预览到每个文件的文件名及各种文件属性,如创建时间、完整路径等。在此对话框中,选择“转换数据”(Excel版本不同,对话框稍有不同,但大同小异),进入到Power Qurey界面,在PQ界面工作界面中,删除不需要的列,如果文件名不需要扩展名,就对文件名以小数点为分隔符拆分,再删除扩展名列。反正你想怎么整就怎么整。整好后,从PQ的文件菜单中选择关闭并上载到,上载到目录工作表中。
以后文件夹内文件有增减变化,或文件名有修改,只要在工作表中右击,选择“刷新”即可得到更新。
Power Qurey的方法简单快捷,基本上就点几下鼠标。不需要去这编程语言。按上面说的步骤一步步去操作,任何只要对Windows资源管理器有些了解,对Excel有基本了解的人都能完成。
三、DOS时代的方法,度友“二性北B”有介绍。
D. excel 多个文件 提取
首先,将你那100个文件统一放在一个文件夹里,比如c:\temp,在temp文件夹里新建一个批处理文件1.bat,内容只有一行“dir *.xls > 1.txt”。
运行1.bat,这时temp里就会有一个1.txt的文件产生,里面是你所有的需要处理的文件名。
新建一个excel文件,将1.txt中的文件名列表拷贝贴到sheet1的A列。打开vba编辑器,插入一个模块,贴入下面的代码,注意修正参数:
Sub BatchWork()
Dim TempFileName As String
Dim AWorkBook As String
Sheets("sheet1").Select
AWorkBook = ActiveWorkbook.Name
For i = 1 To 100 '100要换成实际的文件数量
Range("A" & i).Select
TempFileName = ActiveCell.Text
Workbooks.Open Filename:="C:\Temp\" & TempFileName 'C:\Temp\ 要换成你的文件存储位置
Windows(TempFileName).Activate
Sheets("Sheet6").Select 'sheet6要换成你的第6张表的名字
Range("A1:G300").Select
Selection.Copy
Windows(AWorkBook).Activate
Sheets("Sheet1").Select
Sheets.Add
ActiveSheet.Name = TempFileName
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(TempFileName).Activate
ActiveWindow.Close (0)
Sheets("Sheet1").Select
Next i
End Sub
我在我的机器上试过可以用的,行不行就看你的操作了
E. 如何用Excel VBA读取某一文件夹下批量TXT文本内的某行某列
如何用Excel VBA读取某一文件夹下批量TXT文本内的某行某列? 可以使用如下的代码,复制如下代码到VBA模块中运行即可。
如下代码代表4行4列,如果其余行或列数则可更改相应的数字。
具体步骤如下:
打开office excel;
Alt+F11打开VBA编辑器;
复制如下代码到模块中;
F5运行该模块;
按照提示进余歼亩行如下步骤即可。
Sub xxx()Dim myFile As StringDim myText As StringDim myString As StringDim i As SingleWith Application.FileDialog(msoFileDialogFolderPicker).Show.AllowMultiSelect = FalsemyFile = .SelectedItems(1)End WithmyText = Dir(myFile & "\" & "*.txt")Do While Len(myText) <> 0Open myFile & "\" & myText For Input As #1myText = Split(Split(VBA.StrConv(InputB(LOF(1), 1), vbUnicode), Chr(10))(3), vbTab)(3) '4行4列,如果其余行或列数则更改相应的数字Debug.Print myTextClosemyText = DirLoopEnd Sub
如何用ISS指向某一文件夹
现在我们的标准安装已经完成,让我们讨论一下无人值守安装。Setupsql.exe程序让你记录下一个应答文件,它包括了你在安装程序对话框中常选的对于各种安装选项的所有回答。稍后,你能够通过调用以该应答文件作为参数的setupsql.exe命令来改举运行一个安装。这种无需任何用户干预的安装类型被称为无人值守安装。 要准备应答文件,先启动安装程序,在安装选择对话框中选择高级选项,在对话框中选择选取“记录无人值守.ISS文件”。安装程序会指导你完成常规的安装对话框,其中你可以填入所有你想要记录的选项。当你完成后,安装程序在\WINNT文件夹下创建一个名为setup.iss的文件。 要启动一个无人值守安装,运行setupsql.exe程序,用-s作为执行安静安装的参数、-fl参数指定一个应答文件。例如,要启动一个安静的、无人值守的安装——安装完成后不通知你,你可以使用以下命令: \setupsql.exe –s –fl \setup.iss 如果你想在安装完成时得到通知,从命令行执行如下setupsql.exe程序,或者把它写入一个批处理文件中: start /wait \setupsql.exe -s –fl \setup.iss 直到安装结束,控制才会传递到下一条命令。当你从批处理文件启动安装,而这个文件又包括其他依赖于安装的行为时,使用start /wait选项是特别重要的。例如,假设你要为一个名为INST1的命名实例执行无人值守安装来创建批处理文件,然后启动SQL Server服务,再运行一个用来创建数据库及其对象(如:表、存储过程)的sql脚本。这个批处理文件看起来可能像这样: start /wait D:\X86\Setup\setupsql.exe –s –fl C:\WINNT\setup.iss start MSSQL$INST1 OSQL /E /I “c:\data\scripts\createappdb.sql” 如果你不使用start /wait选项,控制从安装一开始就移到了批处理文件的第二条命令,而这条NET START命令试图启动一个还不存在的服务。 对一个无人值守安装进行故障排除要比对待标准安装的故障排除更需要慎重对待。标准安装往往在安装程序遇到问题时通过显示一个包含出错信息的对话框(并伴有响亮的警告声)来通知你。而无人值守安装只是简单地终止,且没有交互的通知。 要了解如何对无人值守安装进行故障排除,让我们来看一组竖森我遇到过的问题。假设你已经在服务器上完成了另一个产品的安装,然后你试图执行一个SQL Server的无人值守安装。安装程序检测到在前一个安装结束后服务器尚未重启,于是放弃安装,同时没有任何信息提示。如果你保持任务管理器窗口打开,你会注意到setupsql.exe 程序不活动,所以SQL Server没有被安装。你也应该检查日志文件。一旦安装成功,\WINNT\setup.log文件应该显示0作为出错代码;然而,在我描述的情景中,他很可能显示-1,这表示一个基本错误。你也应该看一下出错信息。 当执行无人值守安装时,我遇到过多次的另一个错误是“对话框次序紊乱”。同时,安装程序通常在\Pr
如何用vbs判断某一文件夹下是否有txt格式文件
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder("D:123")
for each fl in folder.files
if lcase(right(fl,4))=".txt" then msgbox "存在":wscript.quit
next
msgbox "不存在"
excel如何用宏删掉D盘某个文件夹下“0.txt”文件
sub delfile()
Kill "D:\1\0.txt"
end sub
删除d盘文件夹1下面的0.txt文件
matlab如何打开某一文件夹下的.m文件?
解决方案1:
\)主程序开头添加addpath('program文件夹添加到当前运行的path中;e;program' 也就是把e:\
解决方案2:
m'd把要run的M文件改成function格式
然后再要用的地方调用function
如果之前没打开过的话就要先用命令打开,例如,把函数放进matlab里
用命令打开:
open('program\***:\
解决方案3:
用matlab需要一个工作空间(我的电脑默认的是:我的文档\\matlab这个文件夹),你把要用的文件都放在那里,要是满电脑乱放可不行B
解决方案4:
点击桌面matlab的图标,右键单击一下,点击属性,里面第二栏为起始位置,更改起始位置的文件位置即可。比如说你上边的将起始位置栏改为E:\program,如果该文件下面还有文件夹例如文件夹kiss,可以这样子更改E:\program\kiss,这样更改以后每次打开matlab的open选项时,自动从所设定的文件位置打开!
解决方案5:
主程序开头添加addpath('e:\program'); 也就是把e:\program文件夹添加到当前运行的path中,这样就可以直接调用该文件了
把要run的M文件改成function格式
然后再要用的地方调用function
如果之前没打开过的话就要先用命令打开,把函数放进matlab里
用命令打开,例如:
open('d:\program\***.m') &&其中***为文件名
解决方案6:
这是默认的文件夹
你点开想要打开的M文件就可以了 问你是否变更文件夹 点是就OK
解决方案7:
1 直接搜索*.m;
2 edit *.m
3 如果已经找到了m文件,那就双击好了
解决方案8:
matlab软件里面的文件窗口的右上角有得点
Excel 如何批量提取同一文件夹下excel信息
那个你直接用“无敌点击狗”软件就能轻松完成,在无敌点击狗里提供有自动点击按键操作和自动批量提取录入,按键模拟等,很方便的。
求批处理批量提取某一文件夹下所有文件内指定的字符
把压缩包解压后得到txt文件,然后可试试 文件批量处理百宝箱V8.0 主界面-更多功能-拓展界面-文本行处理-第39项功能,在待查找标记中输入:([1-9][0-9]{4,12}[!\D](?!\d))|(!1000)\@(qq|QQ)\.(|COM),单击执行即可。
如何用matlab批量读取一个文件夹下的多个子文件夹中的多个文件
matlab我不了解,您是要用matlab这个程序去打开每一个文件吗?
如何用python获得ftp中某文件夹下的'文件夹列表'
使用dir()取回来后, 再处理一下,把目录挑出来:
drw-rw-rw- 1 user group 0 Oct 31 21:40 dir1
drw-rw-rw- 1 user group 0 Oct 31 21:42 dir2
-rw-rw-rw- 1 user group 10752 Oct 31 21:41 file1.doc
-rw-rw-rw- 1 user group 10752 Oct 31 21:41 file2.doc
F. 怎么把多个txt文本的内容,批量导入到excel指定的表格
1、如下图所示,我们在TXT文本内有一些数据内容,想要把他们转到excel表格中版。接下来我们权先打开excel表格。
G. 如何用excel批量读取txt中固定行列的数据
'将如下宏代码粘贴到的VBA编辑器中,按F5运行即可,注意修改你的文件所在的目录。
SubReadData()
DimPathAsString,MyValueAsString,fnAsLong
Path="C: mp"'假定你的1dr文件处在C: mp文件夹中,可以自行修改
fn=FreeFile
RowI=1
fname=Dir(Path&"*.1dr")
'如果是txt文件,则为fname=Dir(Path&"*.txt")
Iffname<>""Then
Do
OpenPath&""&fnameForInputAs#fn
Row=0
DoUntilEOF(fn)
LineInput#fn,Data
Data=Trim(Data)
IfData<>""ThenRow=Row+1
IfRow=6ThenExitDo'这里6表示表示提取第几行的数据
Loop
Close#fn
IfData<>""AndRow=6Then
Data=Replace(Data,"",vbTab)
Data=Replace(Data,vbTab&vbTab,vbTab)
Data=Split(Data,vbTab)
n=UBound(Data)
Ifn>=10AndTrim(Data(9))<>""Then'提取第6行第10列数据填充到单元格的第1列中
OnErrorResumeNext
Cells(RowI,1).Value=Data(9)
IfErr.NumberThen
Cells(RowI,1)=Data(9)
EndIf
EndIf
Ifn>=1AndTrim(Data(0))<>""Then'提取第6行第1列数据填充到单元格的第2列中
OnErrorResumeNext
Cells(RowI,2).Value=Data(0)
IfErr.NumberThen
Cells(RowI,2)=Data(0)
EndIf
EndIf
Ifn>=13AndTrim(Data(12))<>""Then'提取第6行第13列数据填充到单元格的第3列中
OnErrorResumeNext
Cells(RowI,3).Value=Data(12)
IfErr.NumberThen
Cells(RowI,3)=Data(12)
EndIf
EndIf
EndIf
RowI=RowI+1
fname=Dir()
LoopWhilefname<>""
ActiveWorkbook.Save
EndIf
MsgBox"处理完毕!",vbInformation+vbOKOnly,"消息"
EndSub