BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #29772同步于 2010/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

【求助】Excel批量导入TXT文本本件

magicstone
2010/11/26镜像同步8 回复
一个农科院的同学求助,他手头有批量的txt文件需要导入excel表格。txt内容是不同观察站水气压数据,每天的数据放在一个txt文件里,并以日期命名,一年的365个txt放在一个文件夹下,文件夹以年命名,共有从1971年到现在的40年数据。即40 X 365 = 14600 个txt文件。 问题来了,他需要把这些txt导入excel中,每一天的数据存放在一个sheet中,sheet以文件名即日期命名,每一年的365个sheet放在一个excel文件中,即导入数据后,共有40个excel文件,每个excel中365个sheet,每个sheet对应一天的数据。 求方法?望大牛不吝赐教。excel为2007。单个txt可以直接由excel导入,txt本身是有格式的,单独导入sheet中不存在问题。试过宏操作,没成功。
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
police机器人#1 · 2010/11/26
曾经我寂寞无聊的时候帮人写过程序干这个。。。 【 在 magicstone (Natural Relish) 的大作中提到: 】 : 一个农科院的同学求助,他手头有批量的txt文件需要导入excel表格。txt内容是不同观察站水气压数据,每天的数据放在一个txt文件里,并以日期命名,一年的365个txt放在一个文件夹下,文件夹以年命名,共有从1971年到现在的40年数据。即40 X 365 = 14600 个txt文件。 : 问题来了,他需要把这些txt导入excel中,每一天的数据存放在一个sheet中,sheet以文件名即日期命名,每一年的365个sheet放在一个excel文件中,即导入数据后,共有40个excel文件,每个excel中365个sheet,每个sheet对应一天的数据。 : 求方法?望大牛不吝赐教。excel为2007。单个txt可以直接由excel导入,txt本身是有格式的,单独导入sheet中不存在问题。试过宏操作,没成功。 : ...................
magicstone机器人#2 · 2010/11/26
源程序能给我一份么,谢谢了。 【 在 police 的大作中提到: 】 : 曾经我寂寞无聊的时候帮人写过程序干这个。。。 : 【 在 magicstone (Natural Relish) 的大作中提到: 】 : : 一个农科院的同学求助,他手头有批量的txt文件需要导入excel表格。txt内容是不同观察站水气压数据,每天的数据放在一个txt文件里,并以日期命名,一年的365个txt放在一个文件夹下,文件夹以年命名,共有从1971年到现在的40年数据。即40 X 365 = 14600 个txt文件。 : ...................
police机器人#3 · 2010/11/26
找了半天也没找到。啊啊啊啊。 【 在 magicstone (Natural Relish) 的大作中提到: 】 : 源程序能给我一份么,谢谢了。
magicstone机器人#4 · 2010/11/26
那能大概说个思路么? 【 在 police 的大作中提到: 】 : 找了半天也没找到。啊啊啊啊。 : 【 在 magicstone (Natural Relish) 的大作中提到: 】 : : 源程序能给我一份么,谢谢了。 : ...................
police机器人#5 · 2010/11/26
其实那个宏挺简单的。。我当时就是录了一个。。然后改了改而已。。。 【 在 magicstone (Natural Relish) 的大作中提到: 】 : 那能大概说个思路么?
fxw机器人#6 · 2010/12/3
lz:2007or2003的最大sheet数为255个,不可能实现365个,所以,程序很简单,但是365个sheet就很难了
fxw机器人#7 · 2010/12/3
合并程序如下:但是操作txt数不要超过255个 Sub D20合并文本() 'made by fxw Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim newwb As Workbook Set newwb = Workbooks.Add newwb.Application.ActiveWindow.Caption = "MergeTXT.xls" With fd .Filters.Clear .Filters.Add "文本文件", "*.txt", 1 .Filters.Add "所有文件", "*.*", 2 .Title = " 请选择要合并的txt文件 " If .Show = -1 Then Application.ScreenUpdating = False Dim vrtSelectedItem As Variant Dim i As Integer i = 1 For Each vrtSelectedItem In .SelectedItems Dim tempwb As Workbook Set tempwb = Workbooks.Open(vrtSelectedItem) tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i) newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".txt", "") tempwb.Close savechanges:=False i = i + 1 Next vrtSelectedItem Else: newwb.Close savechanges:=False Exit Sub End If End With Set fd = Nothing If ActiveWorkbook.Sheets.Count > 3 Then Sheets("Sheet1").Select Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True Sheets("Sheet2").Select Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True Sheets("Sheet3").Select Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True End If Sheets(1).Select Application.ScreenUpdating = True End Sub
police机器人#8 · 2010/12/5
咦。我记得2007里索引变长了?难道记错了。 【 在 fxw (重新开始拉~~) 的大作中提到: 】 : lz:2007or2003的最大sheet数为255个,不可能实现365个,所以,程序很简单,但是365个sheet就很难了