zoukankan      html  css  js  c++  java
  • 合并多个表格数据的代码

    经常需要将很多Excel表格的数据内容进行合并处理,这里我放上来一个案例,并提供2种通过VBA代码实现的方式。案例的详细内容可以在以下链接下载http://yunpan.cn/cmSgUBrqGji3p;访问密码:9f12。

    1、打开Excel文件直接读取

     1 Sub CombineFiles()
     2     Dim excelApp As Excel.Application
     3     Dim fileName As String
     4     Dim ws As Worksheet
     5     
     6     Application.ScreenUpdating = False
     7     Set excelApp = GetObject(, "Excel.Application")
     8     fileName = Dir(ThisWorkbook.Path & "*.csv")
     9     Do While fileName <> ""
    10         Set ws = excelApp.Workbooks.Open(ThisWorkbook.Path & "" & fileName).Worksheets(1)
    11         currow = Sheet1.Range("A65535").End(xlUp).Row
    12         If currow > 1 Then
    13             currow = currow + 1
    14             ws.UsedRange.Offset(1, 0).Copy Sheet1.Range("A" & currow)
    15         Else
    16             ws.UsedRange.Copy Sheet1.Range("A" & currow)
    17         End If
    18         fileName = Dir
    19         ws.Parent.Close
    20     Loop
    21     Application.ScreenUpdating = True
    22 End Sub

    2、通过ADO读取数据

     1 Sub CopyFileFromRs()
     2     Dim conn As ADODB.Connection
     3     Dim rs As ADODB.Recordset
     4     Dim fld As ADODB.Field
     5     Dim iCount As Integer
     6     
     7     Set conn = New ADODB.Connection
     8     fileName = Dir(ThisWorkbook.Path & "*.csv")
     9     Do While fileName <> ""
    10         With conn
    11              .Provider = "Microsoft.Jet.OLEDB.4.0"
    12              .ConnectionString = "Data Source=" & ThisWorkbook.Path & "" & fileName & ";" & _
    13              "Extended Properties=Excel 8.0;"
    14             .Open
    15         End With
    16         Set rs = New ADODB.Recordset
    17         rs.Open "Select * From [Worksheet$]", conn, adOpenKeyset, adLockReadOnly
    18         currow = Sheet1.Range("A65535").End(xlUp).Row
    19         If currow = 1 And Len(Sheet1.Range("A1")) = 0 Then
    20             For Each fld In rs.Fields
    21                 iCount = iCount + 1
    22                 Sheet1.Cells(1, iCount) = fld.Name
    23             Next
    24             Sheet1.Range("A2").CopyFromRecordset rs
    25         Else
    26             currow = currow + 1
    27             Sheet1.Range("A" & currow).CopyFromRecordset rs
    28         End If
    29         fileName = Dir
    30         conn.Close
    31     Loop
    32     
    33     Set fld = Nothing
    34     Set rs = Nothing
    35     Set conn = Nothing
    36 End Sub
  • 相关阅读:
    Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
    Android 解决listview中checkBox错位选择
    带checkbox的ListView实现(一)——数据与渲染完全分离的传统实现方式
    ViewPager + Fragment实现滑动标签页
    android中使用PopupWindow实现弹出窗口菜单
    Android TextView背景颜色与背景图片设置
    Android特效 五种Toast详解
    Android 带checkbox的listView 实现多选,全选,反选
    android 截取指定位置字符串
    带checkbox的ListView实现(二)——自定义Checkable控件的实现方法
  • 原文地址:https://www.cnblogs.com/alexywt/p/4780856.html
Copyright © 2011-2022 走看看