前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将包含数字形式的文本文件导入Excel中时保留文本格式的VBA自定义函数

将包含数字形式的文本文件导入Excel中时保留文本格式的VBA自定义函数

作者头像
fanjy
发布2024-01-14 21:05:28
1960
发布2024-01-14 21:05:28
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA

Q:有一个文本文件,其内容包含很多以0开头的数字,如下图1所示,当将该文件导入Excel中时,Excel会将这些值解析为数字,删除了开头的“0”。

图1

我该如何将原值导入Excel工作表?

A:我们使用一个VBA自定义函数来解决。

VBA自定义函数代码如下:

代码语言:javascript
复制
Function My_OpenTextFile(strPath As String, strDelim As String) As Variant
 Dim iFile As Integer
 Dim varlineArray As Variant
 Dim temp As String
 Dim arrayList As Object
 Set arrayList = CreateObject("System.Collections.ArrayList")
 iFile = FreeFile
 Open strPath For Input As #iFile
 While Not EOF(iFile)
   Line Input #iFile, temp
   varlineArray = Split(temp, strDelim)
   arrayList.Add varlineArray
   Erase varlineArray
 Wend
 Close #iFile
 My_OpenTextFile = WorksheetFunction.Transpose(WorksheetFunction.Transpose(arrayList.ToArray()))
 arrayList.Clear
 Set arrayList = Nothing
End Function

该函数中,参数strPath是要导入的文本文件所在路径及文件名,参数strDelim是文本文件中用于分隔值的分隔符。

假设一个名为“myFile.txt”的文件存储在路径“C:\test\”中,可以使用下面的过程来调用这个自定义函数:

代码语言:javascript
复制
Sub test()
 Dim var As Variant
 
 '根据实际修改为相应的文件路径和分隔符
 var = My_OpenTextFile("C:\test\myFile.txt", ";")
 With Range("A1").Resize(UBound(var, 1), UBound(var, 2))
   .NumberFormat = "@" '修改为文本格式
   .Value = var '插入数组值
 End With
End Sub

这将打开指定的文本文件,并使用提供的分隔符将其读入,返回一个二维数组。然后,可以使用该数组来定位要放置数据的区域,并相应地设置格式。示例结果如下图2所示。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-10,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com