ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lbwrong

[求助] 通宵两宿没干完,高手帮个忙

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-31 09:10 | 显示全部楼层
你随便搜个合并的帖子,基本可以完成你的需求,有包含汇总的,即使不包含也很容易了

TA的精华主题

TA的得分主题

发表于 2009-5-31 10:46 | 显示全部楼层
Sub pldrwb0531()
'汇总表.xls
'导入指定文件的数据
    Dim myFs As FileSearch
    Dim myPath As String, Filename$
    Dim i As Long, n As Long
    Dim Sht1 As Worksheet, sh As Worksheet
    Dim aa, nm$, nm1$, m, arr, r1, col1%
Application.ScreenUpdating = False
Set Sht1 = ActiveSheet
    Set myFs = Application.FileSearch
    myPath = ThisWorkbook.Path
    With myFs
        .NewSearch
        .LookIn = myPath
        .FileType = msoFileTypeNoteItem
        .Filename = "*.xls"
        If .Execute(SortBy:=msoSortByFileName) > 0 Then
            n = .FoundFiles.Count
            ReDim myfile(1 To n) As String
            For i = 1 To n
                myfile(i) = .FoundFiles(i)
                Filename = myfile(i)
                aa = InStrRev(Filename, "\")
                nm = Right(Filename, Len(Filename) - aa)
                nm1 = Left(nm, Len(nm) - 4)
                If nm1 <> "汇总表" Then
                    Workbooks.Open myfile(i)
                    Dim wb As Workbook
                    Set wb = ActiveWorkbook
                    m = [a65536].End(xlUp).Row
                    arr = Range(Cells(3, 3), Cells(m, 3))
                    Sht1.Activate
                    Set r1 = Rows(2).Find(nm)
                    col1 = r1.Column
                    Cells(3, col1).Resize(UBound(arr), 1) = arr
                    wb.Close savechanges:=False
                    Set wb = Nothing
                End If
            Next
        Else
            MsgBox "该文件夹里没有任何文件"
        End If
    End With
    [a1].Select
   
    Set myFs = Nothing
Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-31 20:11 | 显示全部楼层
12 楼的兄弟  你真是好样的,我想请您 帮我个忙再  我希望实现
从单元格  C2  开始 到   ZZ2 的文件名能自动获取  不是用手一个一个的复制粘贴
还有就是 取来的数值  最好有引用地址  就像  ='C:\help\help\[福田宾馆.xls]Sheet1'!$C$15 这样子的
可以做到吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-31 20:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
数值显示  ='C:\help\help\[福田宾馆.xls]Sheet1'!$C$15   同时也  方便其它人  对取来过的 数值进行校验

现在不能实现自动获取 文件名字

TA的精华主题

TA的得分主题

发表于 2009-5-31 20:29 | 显示全部楼层
Sub pldrwb0531()
'汇总表.xls
'导入指定文件的数据
    Dim myFs As FileSearch
    Dim myPath As String, Filename$
    Dim i As Long, n As Long
    Dim Sht1 As Worksheet, sh As Worksheet
    Dim aa, nm$, nm1$, m, arr, r1, col1%
Application.ScreenUpdating = False
Set Sht1 = ActiveSheet
    Set myFs = Application.FileSearch
    myPath = ThisWorkbook.Path
    With myFs
        .NewSearch
        .LookIn = myPath
        .FileType = msoFileTypeNoteItem
        .Filename = "*.xls"
        If .Execute(SortBy:=msoSortByFileName) > 0 Then
            n = .FoundFiles.Count
            col1 = 2
            ReDim myfile(1 To n) As String
            For i = 1 To n
                myfile(i) = .FoundFiles(i)
                Filename = myfile(i)
                aa = InStrRev(Filename, "\")
                nm = Right(Filename, Len(Filename) - aa)
                nm1 = Left(nm, Len(nm) - 4)
                If nm1 <> "汇总表" Then
                    Workbooks.Open myfile(i)
                    Dim wb As Workbook
                    Set wb = ActiveWorkbook
                    m = [a65536].End(xlUp).Row
                    arr = Range(Cells(3, 3), Cells(m, 3))
                    Sht1.Activate
                    col1 = col1 + 1
                    Cells(2, col1) = nm    '自动获取文件名
                    Cells(3, col1).Resize(UBound(arr), 1) = arr
                    wb.Close savechanges:=False
                    Set wb = Nothing
                End If
            Next
        Else
            MsgBox "该文件夹里没有任何文件"
        End If
    End With
    [a1].Select
   
    Set myFs = Nothing
Application.ScreenUpdating = True
End Sub
至于数值显示引用地址,会导致全是公式,速度会很慢,再说要复核校验一般是打印出来再查的,在电脑上切换来切换去的并不方便的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-31 20:56 | 显示全部楼层
兄弟 没事 慢也行  你帮帮我吧
我要显示地址  公式就公式 慢就慢  真的 我真的需要这个东西

帮帮我呗

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-31 20:58 | 显示全部楼层
兄弟你太强了 你编的这个解决了我工作当中的一大难点   我太感激你了
你是哪里人,我是辽宁的  你要是来昌图县 我得请请你 好好的

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-31 21:07 | 显示全部楼层
对了  兄弟  我的这个汇总工作 help 是做个例子
实际工作中需要对汇总的工作表进行选择  不一定是汇总 sheet1 这个工作表
这个需要怎样进行修改呢? 我的每个 .xls 文件中都有十几个 工作表  一般全是中文名字
没有像 sheet1 这样的 都是  “装置性材料” “土方” 这样的,在 VBA要怎么修改呢?

TA的精华主题

TA的得分主题

发表于 2009-5-31 21:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
建议楼主一次把要求说清楚,该要比写麻烦,尤其是一遍一遍的改,不复杂的过程越说越复杂

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-2 20:36 | 显示全部楼层
其的问题一直都有提呀,数值显示公式
我不明白这个语句的含义,我只是想知道 这对一个文件内多个
工作表是汇总哪个工作表
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-12-14 21:55 , Processed in 0.026206 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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