ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求帮忙修改代码,以前适用的现在不适用了,急急急在线等

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-21 18:46 | 显示全部楼层 |阅读模式
求帮助,代码是以前大神帮忙写的,但是后来人做的数据格式有问题就用不了了,求大神帮忙修改 QQ图片20141021184312.jpg QQ截图20141021184332.png 类似这样,左边第一列与第二列中间两个空格不能用,右图三个空格就能用,如果一个个加空格工作量好大,所以看有木有大神帮忙改下代码

代码如下
  1. Sub test()
  2. t = Timer
  3. Dim Path$, myName$, arr(16380), brr, crr, tmp, i&, j&, D As Object
  4. Path = ThisWorkbook.Path & ""
  5. myName = Dir(Path & "*.txt")
  6. Do While myName <> ""
  7.     arr(i) = myName
  8.     i = i + 1
  9.     myName = Dir
  10. Loop

  11. UsedRange.Offset(0, 2).ClearContents
  12. [c1].Resize(1, i) = arr
  13. brr = [a1].CurrentRegion
  14. Set D = CreateObject("scripting.dictionary")
  15. For i = 2 To UBound(brr)
  16.     D(brr(i, 1) & brr(i, 2)) = i
  17. Next
  18. For i = 3 To UBound(brr, 2)
  19.     Open Path & brr(1, i) For Input As #1
  20.     crr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
  21.     Close #1
  22.     brr(1, i) = Split(brr(1, i), ".")(0)
  23.     For j = 0 To UBound(crr)
  24.         If crr(j) <> "" Then
  25.             tmp = Split(WorksheetFunction.Trim(WorksheetFunction.Clean(crr(j))), " ")
  26.             If UBound(tmp) = 3 Then
  27.                 If D.exists(tmp(0) & tmp(2)) Then brr(D(tmp(0) & tmp(2)), i) = tmp(3)
  28.             End If
  29.         End If
  30.     Next
  31. Next
  32. [a1].Resize(UBound(brr), UBound(brr, 2)) = brr
  33. MsgBox "OK,Run Times: " & Timer - t, vbInformation
  34. End Sub
复制代码
另外加上两种不同的数据如附件,麻烦大神帮忙修改,真的很急,十分感谢! 间隔两个空格失败.rar (56.5 KB, 下载次数: 7)

间隔三个空格成功.rar (238.52 KB, 下载次数: 7)



该贴已经同步到 a8851562的微博

TA的精华主题

TA的得分主题

发表于 2014-10-21 19:26 | 显示全部楼层
空格两个没有发现问题啊。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-21 19:41 来自手机 | 显示全部楼层
liulang0808 发表于 2014-10-21 19:26
空格两个没有发现问题啊。。。

运行代码不会报错但是excel中不会出现相关数据,具体可运行一次三个空格就知道效果啦

TA的精华主题

TA的得分主题

发表于 2014-10-21 19:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
a8851562 发表于 2014-10-21 19:41
运行代码不会报错但是excel中不会出现相关数据,具体可运行一次三个空格就知道效果啦

两个附件中的文本文件一致吗

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-21 19:50 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liulang0808 发表于 2014-10-21 19:46
两个附件中的文本文件一致吗

excel代码是一样的,但是文本文件中  就有第一列与第二列两个空格和三个空格的区别,两个运行完是不一样的,成功那个表格中会出现相应数据,失败的就没有╮(╯▽╰)╭

TA的精华主题

TA的得分主题

发表于 2014-10-21 20:07 | 显示全部楼层
excel第一列跟第二列的数据与文本内容无关吗???

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-21 20:15 来自手机 | 显示全部楼层
liulang0808 发表于 2014-10-21 20:07
excel第一列跟第二列的数据与文本内容无关吗???

那个是有关的,就是用那个去匹配txt中第一列和第三列,然后把对应的第四列中的数据填到对应单元格里,两个文件夹中的表格是完全一样的

TA的精华主题

TA的得分主题

发表于 2014-10-21 20:19 | 显示全部楼层
a8851562 发表于 2014-10-21 20:15
那个是有关的,就是用那个去匹配txt中第一列和第三列,然后把对应的第四列中的数据填到对应单元格里,两个 ...

那么文本文件里的内容是否一致啊?
至少包含第一列第二列信息吧
刚才看了几个文件,没有发现

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-21 20:29 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liulang0808 发表于 2014-10-21 20:19
那么文本文件里的内容是否一致啊?
至少包含第一列第二列信息吧
刚才看了几个文件,没有发现

每个文档中的内容不一样,而且只包含表格前两列内容的一部分,而且对应是表格中第一列第二列分别对应文本中第一列和第三列这样,就是表格中是所有的测站名称,但不是每次所有测站都下雨,文本中是对应小时里面下雨的测站名称及雨量这个样子

TA的精华主题

TA的得分主题

发表于 2014-10-21 21:06 | 显示全部楼层
a8851562 发表于 2014-10-21 20:29
每个文档中的内容不一样,而且只包含表格前两列内容的一部分,而且对应是表格中第一列第二列分别对应文本 ...

不是几个空格的问题,而是原来有特殊字符的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-26 01:10 , Processed in 0.043706 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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