楼主: ben1dan
2486 3

[地区统计年鉴] 用来收集统计年鉴中Excel表格的VB程序 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1106份资源

大专生

73%

还不是VIP/贵宾

-

威望
0
论坛币
8556 个
通用积分
222.0018
学术水平
16 点
热心指数
19 点
信用等级
14 点
经验
544 点
帖子
10
精华
0
在线时间
101 小时
注册时间
2006-4-21
最后登录
2025-10-28

楼主
ben1dan 发表于 2010-11-17 00:30:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
下面上三段用来收集统计年鉴中的Excel文件的VB程序。


CopySheet2003() 用Excel2003版来集成文件
CopySheet2007() 用Excel2007版来集成文件
BuiltToc()                 用于建目录


使用方法:
1)把统计年鉴中的Excel文件都放在一个叫c:\temp\cb的文件夹中(当然也可以放到别的文件夹,只要把程序中的相应地址改了就可以)
2)打开一个Excel空文件,把一下程序拷入VB编辑器中。
3)根据所用Excel版本,选择CopySheet200X()程序。 
4)命名、存盘
5)把第一个worksheet改名为index, 运行BuiltToc()建立目录。
6)存盘,结束。

如果你把文件重新命名后,目录中的链接断了的话,再运行一遍BuiltToc()就会更新目录。
以后大家拿到新的统计年鉴,用以上程序就可以自己来集成Excel文件了。



Function FileList(fldr As String, Optional fltr As String = "*.xls") As Variant
    Dim sTemp As String, sHldr As String
    If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"
    sTemp = Dir(fldr & fltr)
    If sTemp = "" Then
        FileList = False
        Exit Function
    End If
    Do
        sHldr = Dir
        If sHldr = "" Then Exit Do
        sTemp = sTemp & "|" & sHldr
     Loop
    FileList = Split(sTemp, "|")
End Function

Sub CopySheet2007()
Dim basebook As Workbook
Dim tmpbook As Workbook
Dim i As Long
    Application.ScreenUpdating = False

    Files = FileList("C:\temp\cb")
    ChDir "C:\temp\cb"
    Set basebook = ThisWorkbook
    For i = LBound(Files) To UBound(Files)
            Set tmpbook = Workbooks.Open("c:\temp\cb\" & Files(i))
            tmpbook.Worksheets(1).Copy after:= _
            basebook.Sheets(basebook.Sheets.Count)
            ActiveSheet.Name = Replace(tmpbook.Name, ".xls", "")
            tmpbook.Close
        Next i

    Application.ScreenUpdating = True

    'fileSaveName = Application.GetSaveAsFilename( _
    'fileFilter:="Microsoft Excel Workbook (*.xls), *.xls")

'BuiltToc
End Sub

Sub CopySheet2003()
Dim basebook As Workbook
Dim tmpbook As Workbook
Dim i As Long
    Application.ScreenUpdating = False

    With Application.FileSearch
        .NewSearch
        .LookIn = "c:\temp\cb"
        .SearchSubFolders = False
        .FileType = msoFileTypeExcelWorkbooks
        If .Execute() > 0 Then
            Set basebook = ThisWorkbook
            For i = 1 To .FoundFiles.Count
                Set tmpbook = Workbooks.Open(.FoundFiles(i))
                    tmpbook.Worksheets(1).Copy after:= _
                    basebook.Sheets(basebook.Sheets.Count)
                    ActiveSheet.Name = Replace(tmpbook.Name, ".xls", "")
                tmpbook.Close
            Next i
        End If
    End With

    Application.ScreenUpdating = True

    BuiltToc
End Sub

Sub BuiltToc()
  ActiveWorkbook.Save

  Dim cSht As Long
  Dim qSht As String

  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = False

  Sheets("index").Select

  Cells(1, 1) = "Sheet Name"
  Cells(1, 3) = "Table Name"

  For cSht = 2 To ActiveWorkbook.Sheets.Count
     Cells(1 + cSht, 1) = "'" & Sheets(cSht).Name
     qSht = Application.Substitute(Sheets(cSht).Name, """", """""")
     Cells(1 + cSht, 3) = "'" & Sheets(cSht).Cells(1, 1)
     'ActiveSheet.Cells(1 + cSht, 1).Formula = "=hyperlink(""'" & qSht & "'!A1"",""" & qSht & """)"

     ActiveSheet.Cells(1 + cSht, 1).Formula = _
            "=hyperlink(""[" & ActiveWorkbook.Name _
            & "]'" & qSht & "'!A1"",""" & qSht & """)"

     Next cSht

  Rows("1:1").Select
  Selection.Font.Bold = True

  Columns("A:A").EntireColumn.AutoFit
  Columns("C:C").EntireColumn.AutoFit

  On Error Resume Next
  Application.ScreenUpdating = True
End Sub
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:excel表格 Excel表 EXCEL 统计年鉴 xcel 年鉴 程序 EXCEL

已有 2 人评分经验 论坛币 学术水平 热心指数 收起 理由
happy_287422301 + 3 + 3 精彩帖子
snxl + 60 + 60 + 1 + 1 对论坛有贡献

总评分: 经验 + 60  论坛币 + 60  学术水平 + 4  热心指数 + 4   查看全部评分

沙发
王之波 发表于 2010-11-17 00:31:17
1# ben1dan

领教,多谢楼主%
风清者,之波也

藤椅
snxl 在职认证  发表于 2010-11-17 02:06:52
忍不住要奖励一下楼主,难得如此热心。
荣枯本是无常数 何必当风使尽帆  东海犹有扬尘日  白衣苍狗刹那间

板凳
happy_287422301 在职认证  发表于 2010-11-17 10:15:51
用来收集统计年鉴中Excel表格的VB程序
做个标记

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-1 06:14