VBA每日一练(2),将txt的部分全部内容导入到EXCEL

更新时间:2023-04-22 08:11:01 阅读: 评论:0


2023年4月22日发(作者:热爱人民)

VBA每⽇⼀练(2),将txt的部分全部内容导⼊到EXCEL

思路

1 最直接的办法,应该是把 TXT ⽂件拖⼊到EXCEL,或⽤EXCEL打开?

2红烧白鲳鱼 先把1个TXT读⼊进来

3把多个TXT读⼊到EXCEL的多个 SHEET

1

找⽹上的代码学习⾃⼰魔改了⼀下,还有不少问题

错误1:⼜忘了变量赋值和对象赋值,t不应该乱⽤的

问题1:这个版本,没解决中⽂读取的问题,乱码

问题2:现在都是读取到⼀个单元格,如何分⾏读取呢?

Sub readfromtxt1()

Dim fso As Object

Dim f1

Dim filepath1

'我命名经常习惯+1,避免⽤到系统关键字保留字等

filepath1 = "C:"

'错误t filepath1 = "C:"

'因为t只能⽤来设置对象,这种变量不需要⽤t,应该⽤let 或默认不写

Set fso = CreateObject("stemobject")

Set f1 = xtfile(filepath1)

readtext = l

Sheets("sheet1").Cells(1, 1) = readtext

"读取完成"

'这个版本读内容,数字字母可以,但是中⽂会解码错误,可能需要设置unicode格式等

End Sub

解决乱码问题

最后还是从 stackoverflow和 官⽅doc上查到的

OpenTextFile(、[ 、[ 、[ ]]])

filenameiomodecreateformat

根据查到的⽅法 format格式,是⼀个tristate

国内⽹站上找的解释: 0或默认为ASC2格式,-1为unicode,2为系统默认模式 (这是错误的)

官⽅doc解释: unicode Optional. Boolean value that indicates whether the file is created as a Unicode or ASCII file. The

value is True if the file is created as a Unicode file; Fal if it's created as an ASCII file. If omitted, an ASCII file is assumed.

也就是 unicode这个属性值。填写fal 或0,或不填也认为是fal ,就是⽤ASC2,,⽽填其他任85年属什么 意数,只要⾮0,⾮fal都是Unicode

的意思。也就是 1 ,-1 ,2 ,5,-666,999都是unic什么尽染成语 ode

1 Set f1 = xtfile(filepath1, , , tristate = 1) 语法正常

2 另外TXT⽂档的,点另存为,必须修改为 unicode才⾏,不能是utf-8,好像是因为fso不能处理utf-8

Sub readfromtxt1()

Dim fso As Object

Dim f1

Dim filepath1

'我命名经常习惯+1,避免⽤到系统关键字保留字等

filepath1 = "C:"

'错误t filepath1 = "C:"

'因为t只能⽤来设置对象,这种变量不需要⽤t,应该⽤let 或默认不写

Set fso = CreateObject("stemobject")

Set f1 = xtfile(filepath1, , , tristate = 1)

readtext = l

Sheets("sheet1").Cells(1, 1) = readtext

"读取完成"

'这个版本读内容,数字字母可以,但是中⽂会解码错误,可能需要设置unicode格式等

End Sub

2版: 实现读多⾏,和循环读取N

现在尝试下

1 如何逐⾏读,⽽不是全部读取

2 如何把内容分别写到不同的单元格

3 如何把内容写到多个sheet⾥

逐次读取多⾏

下⾯这个只能实现读1⾏1⾏的逐次读取多⾏,每次读取⼀⾏后,会⾃动挪到下⼀⾏

Sub readfromtxt1()

Dim fso As Object

Dim f1

Dim filepath1

'我命名经常习惯+1,避免⽤到系统关键字保留字等

Dim i

fil培训汇报 epath1 = "C:"

'错误t filepath1 = "C:"

'因为t只能⽤来设置对象,这种变量不需要⽤t,应该⽤let 或默认不写

Set fso = CreateObject("stemobject")

Set f1 = xtfile(filepath1, , , tristate = 1)

Sheets("sheet1").Cells(1, 1) = ne

Sheets("sheet1").Cells(2, 1) = ne

S小比熊犬多少钱一只 heets("sheet1").Cells(3, 1) = ne

"读取完成"

End Sub

这样可以循环读取N⾏,但是最⼤⾏数还是未知

Sub readfromtxt1()

Dim fso As Object

Dim f1

Dim filepath1

'我命名经常习惯+1,避免⽤到系统关键字保留字等

Dim i

filepath1 = "C:"

'错误t fil迪士尼童话 epath1 = "C:"

'因为t只能⽤来设置对象,这种变量不需要⽤t,应该⽤let 或默认不写

Set fso = CreateObject("stemobject")

Set f1 = xtfile(filepath1, , , tristate = 1)

For i = 1 To 10

readtext = ne

Sheets("sheet1").Cells(i, 1) = readtext

Next i

"读取完成"

End Sub

⾸页博客学院下载论坛问答商城活动专题招聘ITeyeGitChatAPPVIP会员续费8

Python进阶之路

写博客

Markdown编辑器

富⽂本编辑器

我的主页

⽂章管理

评论管理

分类专栏

订阅专栏

博客搬家

博⽂数据统计Beta

百度热搜词条

⾃定义百度统计

等级权益

订单收益

博客打赏

博客设置

博客模块管理

⾃定义域名

CSDN博客交流群

打开⼿机QQ扫码

或点击这⾥加⼊群聊

QQ客服

VBA每⽇⼀练,VBA ⽂件操作相关知识, 涉及 #1, eof(), lof()

45/100

⽂章标签:

添加标签

最多添加5个标签

分类专栏:

VBA

添加新分类

最多添加3个标签,#为⼆级分类

资源信息:

请填写资源链接

上传资源

⽂章类型:

*

申请原创将启⽤(Creative Commons )版权模板,如果不是原创⽂章,请选择转载或翻译 原创⽂章默认开启打赏, 打赏管理

发布形式:

Sub richardliu1()

Dim fso

Dim f1

Dim str1

Dim i

Dim i

i = 1

str1 = 1

Set fso = CreateObject("stemobject")

Set f1 = xtfile("C:")

Do While Not Len(str1) '判断是否取到空⾏

str1 = ne

Worksheets("a").Cells(i, 3) = str1

i = i + 1

str1

Loop

End Sub

3版:后续思考, 实现智能读取txt的最⼤⾏?---- 没识别最⼤⾏,但能到⽂件尾

⾃动读取⽂档的最⼤⾏,

可以识别到⽂档最尾

Sub jackma3()

Dim str1

i = 1

Open "C:" For Input As #1

Do While Not EOF(1)

Line Input #1, str1

Worksheets("a").Cells(i, 1) = str1

i = i + 1

str1

Loop

Clo #1

End Sub

额外版 封装为函数,可以在其他 过程,函数⾥英语单词教学方法 调⽤

可以把这个封装为⼀个函数,作为⾃定义函数,在EXCEL直接调⽤

单元格⾥输⼊公式

=readtext("C:")

Function readtext(filepath As String) As String

Dim fso As Object

Dim f

Set fso = CreateObject("stemObject")

Set f = xtFile(filepath)

readtext = l

End Function

或者在其他sub内调⽤

Sub testsub101()

Str1 = readtext("C:")

Cells(1, 3) = Str1

End Sub


本文发布于:2023-04-22 08:11:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/842398.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:txt转excel
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图