Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4033|回复: 11

[已解决]根据文本文件的条件,判断工作表内容,可以实现吗?

[复制链接]
发表于 2014-10-12 15:54 | 显示全部楼层 |阅读模式
请问大师们,根据文本文件内的条件,判断工作表内容,并得到返回值,
这个想法可以实现吗?会不会是异想天开呢?

图片1.jpg


国家或地区.rar (11.8 KB, 下载次数: 11)
发表于 2014-10-12 17:03 | 显示全部楼层    本楼为最佳答案   
Dim d
Sub test()
    Dim A, i
    Range("b:b").ClearContents
    A = Range("a1:b" & Range("a65536").End(3).Row)
    Call test2    '建字典
    For i = 1 To UBound(A)
        A(i, 2) = d(A(i, 1))
    Next i
    [a1].Resize(i - 1, 2) = A
End Sub

Sub test2()
    Dim p, f, i, arr
    Set d = CreateObject("scripting.dictionary")
    p = ThisWorkbook.Path
    f = Dir(p & "\*.txt")
    Do While f <> ""
        Open p & "\" & f For Input As #1
        arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
        Close #1
        f = VBA.Replace(f, ".txt", "")
        For i = 0 To UBound(arr)
            d(arr(i)) = f
        Next i
        f = Dir
    Loop
End Sub

国家或地区2.rar (14.6 KB, 下载次数: 15)

评分

参与人数 1 +1 收起 理由
vv36 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-10-12 17:31 | 显示全部楼层
本帖最后由 爱疯 于 2014-10-12 18:13 编辑
爱疯 发表于 2014-10-12 17:03
Dim d
Sub test()
    Dim A, i


{:1212:}爱疯版主,怎么看出来是utf-8的编码格式的...

回复

使用道具 举报

发表于 2014-10-12 18:13 | 显示全部楼层
ghostjiao 发表于 2014-10-12 17:31
爱疯版主,怎么看出来是utf-8的编码格式的...


用记事本打开"亚洲.txt" --- 选择另存 --- 保存类型,就看到了
回复

使用道具 举报

 楼主| 发表于 2014-10-12 20:14 | 显示全部楼层
爱疯 发表于 2014-10-12 17:03
Dim d
Sub test()
    Dim A, i

给力,绝对满足要求,还真不是异想天开啊!

能加几句吗?
1,无法判断=“未知”
2,dir(app.path\xxx.txt)文件缺少语句
回复

使用道具 举报

 楼主| 发表于 2014-10-12 20:20 | 显示全部楼层
爱疯 发表于 2014-10-12 18:13
用记事本打开"亚洲.txt" --- 选择另存 --- 保存类型,就看到了
2)工作簿中,A8里“美国”后面跟了个空白字符

确保实际数据是正确和一致的,再运行,否则查不出来。

可以用“like”模糊判断吧
回复

使用道具 举报

发表于 2014-10-12 20:33 | 显示全部楼层
vv36 发表于 2014-10-12 20:14
给力,绝对满足要求,还真不是异想天开啊!

能加几句吗?

无法判断=“未知”

我不明白是想加什么?你只用文字描述说说

回复

使用道具 举报

 楼主| 发表于 2014-10-12 21:01 | 显示全部楼层
爱疯 发表于 2014-10-12 20:33
无法判断=“未知”

我不明白是想加什么?你只用文字描述说说

就是字典里没有的,显示“未知”
回复

使用道具 举报

发表于 2014-10-12 21:45 | 显示全部楼层
vv36 发表于 2014-10-12 21:01
就是字典里没有的,显示“未知”

现在是查找所有txt文件,并默认如果找到的,都是待处理文本。
你的意思是找到的文本里,还会出现非待处理文本吗?不能手工排除掉吗?。。。

如果做不到,就需要你定义出:待处理文本的特征是什么,才好来判断。
就算可区分了。如果是不符合的,不处理不就行了?为什么要加未知?
需要你完整具体说明,不让还是不理解。

回复

使用道具 举报

 楼主| 发表于 2014-10-13 11:20 | 显示全部楼层
爱疯 发表于 2014-10-12 21:45
现在是查找所有txt文件,并默认如果找到的,都是待处理文本。
你的意思是找到的文本里,还会出现非待处理 ...


非常抱歉,是我表达的不准确
我的想法是,如果A列有个“英国”,因为3个洲的文本里都没有这个“英国”字符,因此在B列显示“未知”,
不知道要怎么添加语句
以上  谢谢
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 09:56 , Processed in 0.491991 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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