查看单个帖子
lee1892
 
lee1892 的头像
荣誉版主
 
资 料:
注册日期: Sep 2001
帖子: 1,572 声望值: 14
精华: 4,解答: 10
#13 旧 2012-05-07, 10:46:06 默认
lee1892 当前离线  

引用:
作者: Spark 查看帖子
Excel 2003,打开宏设置-可运行
把你的报名表复制到一个文件夹,比如“2012报名表”
打开附件里的Excel文件,点第一个 Show按钮,弹出对话框,选择"2012报名表"这个文件夹。获取2012报名表下所有文件的FileName
点击第二个按钮-Get,自动获取你需要的内容

忘了改列宽......
看了一下代码
1、取得目录下文件列表的循环 For i = 2 To .FoundFiles.Count,为什么是从第2个文件开始?估计写代码的时候,GetData.xls这个文件在同一目录下。那么你上面这个运行方法的描述有问题,即便是也放到一个目录里,代码还利用了文件名造成的顺序。楼主要注意这个。
2、比较奇怪为什么要用Excel4.0的宏调用这个函数,在我的理解Excel4.0宏函数是完全可以淘汰的东西。仅仅是把单元格内容复制出来而已啊...

不用那么麻烦,还要改什么注册表吧

============================
闲得蛋疼,写了一个,放到简历表同一目录下打开执行。

代码如下:
PHP 代码:
Sub GetData()
    
Dim iFile As IntegeriItem As IntegerintRowNow As Integer
    Dim arrData
()
    
Dim arrItem()
    
    
'清空原有数据提示'
    
If MsgBox("此操作将清除原有数据,是否继续?"vbYesNo"提示") = vbNo Then Exit Sub
    
If [B65536].End(xlUp).Row 3 Then
        Rows
("4:" & [B65536].End(xlUp).Row).Delete
    End 
If
    
ReDim arrData(1 To 11 To [IV2].End(xlToLeft).Column)
    
arrItem Range("B3").Resize(1UBound(arrData2) - 1)
    
intRowNow 4
    
'查找同目录下Excel文件,并逐个读取数据并写入合并文件'
    
With Application.FileSearch
        
.NewSearch
        
.LookIn ThisWorkbook.Path
        
.FileType msoFileTypeExcelWorkbooks
        
.SearchSubFolders True
        
.Execute
        
For iFile 1 To .FoundFiles.Count
            
If .FoundFiles(iFile) = ThisWorkbook.FullName Then GoTo NEXT_I
            Application
.Workbooks.Open .FoundFiles(iFile)
            
arrData(11) = Right(.FoundFiles(iFile), Len(.FoundFiles(iFile)) - Len(ThisWorkbook.Path) - 1)
            For 
iItem 1 To UBound(arrItem2)
                
arrData(1iItem 1) = Workbooks(arrData(11)).Sheets(1).Range(arrItem(1iItem))
            
Next
            Workbooks
(arrData(11)).Close
            Range
("A" intRowNow).Resize(1UBound(arrData2)) = arrData
            intRowNow 
intRowNow 1
NEXT_I
:
        
Next
    End With
End Sub 
上传的附件
文件类型: rar 合并报名表.rar (9.7 KB, 6 次查看)

此帖于 2012-05-07 12:22:14 被 lee1892 编辑. .


行行复行行...人生路漫长...