ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1071|回复: 2

如何把温度湿度的txt文件内容写入到excel指定的单元格当中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-12-30 09:13 | 显示全部楼层 |阅读模式
各位大侠,我想使用VBA代码来实现如下的功能,我想把温度湿度TXT文件里面的21.3    46%写入到EXCEL工作表1的D7单元格,25.0    50%写入到EXCEL工作表1的E7单元格,20.8    48%写入到EXCEL工作表1的D32单元格,24.0    46%写入到EXCEL工作表1的E32单元格,20.9    44%写入到EXCEL工作表1的D57单元格,24.0    48%写入到EXCEL工作表1的E57单元格。然后依次将txt文件里面的数据写入到另外其他的EXCEL工作表中指定的单元格中,详细数据附件都有。谢谢大侠的帮忙。

数据样本.rar

8.44 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2017-1-17 19:17 | 显示全部楼层
看了半天,貌似txt中每3行对应一张sheet
一张sheet代表一天,每天3次记录
要记录三个机房的数值,UPS和蓄电池在一个房间,所以共用每行的第2组数据

是不是这样?

TA的精华主题

TA的得分主题

发表于 2017-1-17 22:02 | 显示全部楼层
本帖最后由 yayahzmeng 于 2017-1-17 22:04 编辑
  1. Sub 导入()
  2. Application.ScreenUpdating = False
  3.     Dim file, itxt, wtxt, arr, n%, i%, j%, shname, k%
  4.     file = ThisWorkbook.Path & "\温度湿度.txt"
  5.     Open file For Input As #1
  6.         Do While Not EOF(1)
  7.             Line Input #1, itxt
  8.             wtxt = wtxt & itxt & vbTab
  9.         Loop
  10.     Close #1
  11.     arr = Split(Trim(wtxt), vbTab)
  12.     n = UBound(arr) ': MsgBox n
  13.     j = 1: k = 1
  14.     For i = 1 To n - 1
  15.         If i <> 1 And (i - 1) Mod 6 = 0 Then j = j + 1
  16.         If j > Sheets.Count Then
  17.             Worksheets(j - 1).Copy after:=Worksheets(Worksheets.Count)
  18.             With ActiveSheet
  19.                 .Name = j: .Range("d7:f7") = "": .Range("d32:f32") = "": .Range("d57:f57") = ""
  20.             End With
  21.         End If
  22.         shname = CStr(j)
  23.         If i Mod 2 = 1 Then
  24.             txt1 = arr(i - 1) & vbTab & arr(i) & vbTab & arr(i)
  25.             If k = 1 Then
  26.                 Sheets(shname).[d7].Resize(1, 3) = Split(txt1, vbTab): txt1 = ""
  27.             End If
  28.             If k = 2 Then
  29.                 Sheets(shname).[d32].Resize(1, 3) = Split(txt1, vbTab): txt1 = ""
  30.             End If
  31.             If k = 3 Then
  32.                 Sheets(shname).[d57].Resize(1, 3) = Split(txt1, vbTab): txt1 = ""
  33.             End If
  34.             k = k + 1: If k > 3 Then k = 1
  35.         End If
  36.     Next
  37. Application.ScreenUpdating = True
  38. MsgBox "共 " & Int(i / 2) & " 条数据,成功填入 " & Sheets.Count & " 张表"
  39. End Sub
复制代码


请测试

数据样本(Ok).rar

23.61 KB, 下载次数: 5

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 12:38 , Processed in 0.041940 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表