Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: zhycl

[已解决]求VBA,谢谢老师

[复制链接]
发表于 2013-7-20 21:11 | 显示全部楼层
w2001pf 发表于 2013-7-20 21:08
有几句代码的意思 请教老师: Len(strFile)这句与strFile = Dir为什么要写?是什么意思?

因为当前查找到的文件处理完后得继续找下一个文件嘛。所以用STRFILE=DIR
这里不加参数的话,就是继续上一次的搜索。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2013-7-20 23:36 | 显示全部楼层
zjdh 发表于 2013-7-20 20:25

老师,我对我的要求做一下修改,您再帮帮我好吗
1、从这几个文件的“A01自有房屋资产普查基本信息表”(原sheet1工作表)E16单元格中取数,放入到 示例文件  里面E列(原B列)对应的单元格中。
2、原 示例文件 中的 A列现在变到B列, B列(放结果的单元格)变到E列。
3、不想用按钮运行,想让 示例文件 打开后,自动判断 A0310000001等文件内容的变化,取最新数值,不用打开全部数据源文件,就可以取到最新结果。
  谢谢老师  详见修改后的附件 示例.rar (3.4 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2013-7-20 23:37 | 显示全部楼层
hwc2ycy 发表于 2013-7-20 21:11
因为当前查找到的文件处理完后得继续找下一个文件嘛。所以用STRFILE=DIR
这里不加参数的话,就是继续上一 ...

老师,我对我的要求做一下修改,您再帮帮我好吗
1、从这几个文件的“A01自有房屋资产普查基本信息表”(原sheet1工作表)E16单元格中取数,放入到 示例文件  里面E列(原B列)对应的单元格中。
2、原 示例文件 中的 A列现在变到B列, B列(放结果的单元格)变到E列。
3、不想用按钮运行,想让 示例文件 打开后,自动判断 A0310000001等文件内容的变化,取最新数值,不用打开全部数据源文件,就可以取到最新结果。
  谢谢老师  详见修改后的附件 示例.rar (3.4 KB, 下载次数: 1)
回复

使用道具 举报

发表于 2013-7-21 07:59 | 显示全部楼层
本帖最后由 zjdh 于 2013-7-22 08:15 编辑

见18楼附件
回复

使用道具 举报

发表于 2013-7-21 18:51 | 显示全部楼层
偶也来凑热闹

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim 路径, 文件夹, 表名, 行
Dim fos, fld

路径 = ThisWorkbook.Path

Dim uu As FileDialog
Set uu = Application.FileDialog(msoFileDialogFolderPicker)
With uu
        .Title = "选择制作单文件夹"
        .InitialFileName = 路径 & "\"
         If .Show = 0 Then End
End With
文件夹 = uu.SelectedItems(1)

With ThisWorkbook.Sheets("sheet1")
    行 = .Cells(Rows.Count, 1).End(xlUp).Row + 1
   
    Set fso = New filesystemobject
    Set fld = fso.GetFolder(文件夹)
   
    For Each fil In fld.Files
        表名 = fil.Name
        Workbooks.Open 文件夹 & "\" & 表名
        .Cells(行, 1) = Left(表名, Len(表名) - 4)
        .Cells(行, 2) = Workbooks(表名).Sheets("sheet1").Range("e22")
        Cells(行, 1).Resize(1, 2).Borders.LineStyle = xlContinuous
        行 = 行 + 1
        Workbooks(表名).Close
    Next
End With

Application.ScreenUpdating = True
Application.DisplayAlerts = True
回复

使用道具 举报

发表于 2013-7-21 19:04 | 显示全部楼层
示例

示例.zip

38.4 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2013-7-21 22:26 | 显示全部楼层
zjdh 发表于 2013-7-21 07:59

老师,我放了几个 源数据文件,怎么取不到数啊,您给看看 示例3.rar (43.83 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2013-7-22 08:14 | 显示全部楼层    本楼为最佳答案   
zhycl 发表于 2013-7-21 22:26
老师,我放了几个 源数据文件,怎么取不到数啊,您给看看

示例3.rar (9.05 KB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2013-7-22 15:07 | 显示全部楼层
zjdh 发表于 2013-7-22 08:14

首先感谢老师的耐心帮助,不过我现在表的类型增加了,还得接着向老师请教,谢谢。
变化:原来 源数据 只有文件名为 A 开头的,例如:A0310000001。。。。。。。A031000000N,现在又增加了3种文件名格式,分别为:B031000000N、C031000000N 、D031000000N
我现在需要在这种基础上判断一下:
如果 源文件名为 A 开头,则取 E16 单元格数值放到 示例文件 中。
如果 源文件名为 B 开头,则取 K8 单元格数值放到 示例文件 中。
如果 源文件名为 C 开头,则取 I14 单元格数值放到 示例文件 中。
如果 源文件名为 D 开头,则取 E9 单元格数值放到 示例文件 中。

老师别嫌烦啊,谢谢了
回复

使用道具 举报

 楼主| 发表于 2013-7-23 23:45 | 显示全部楼层
zjdh 发表于 2013-7-22 08:14

老师,您就再帮帮我吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 14:46 , Processed in 0.357199 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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