'xlsx cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath
'xls cnADO.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=yes;imex=1';data source=" & ThisWorkbook.Path & "/" & a
'hdr 区域是否含表头

Sub 汇总()
Dim filename As String
Dim wb As Workbook
Dim sht As Worksheet
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset

Application.ScreenUpdating = False '关闭屏幕更新
ThisWorkbook.Sheets(1).Cells.Clear
arr = Array("发票代码", "发票号码", "购方企业名称", "购方税号", "开票日期", "商品名称", "规格", "单位", "数量", "单价", "金额", "税率", "税额", "税收分类编码")
ThisWorkbook.Sheets(1).Range("A1:N1") = arr
filename = Dir(ThisWorkbook.Path & "\*.xlsx")
x = 2
Do While filename <> ""
If a <> "开票汇总.xlsm" Then
'不显示打开工作簿提取数据,使用workbook.open会打开Excel窗口
Set wb = GetObject(ThisWorkbook.Path & "\" & filename)
Set sht = wb.Worksheets(1)
endrow = sht.Range("O65536").End(xlUp).Row '取得最后一行非空行号
strTable = "[sheet1$A4:R" & endrow & "]" '含标题的数据区域
wb.Close
con.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=yes;imex=1';data source=" & ThisWorkbook.Path & "/" & filename
strSQL = "select 发票代码, 发票号码, 购方企业名称, 购方税号, 开票日期, 商品名称, 规格, 单位, 数量, 单价, 金额, 税率, 税额, 税收分类编码 from " & strTable & " where 商品名称<>'小计'"
Set rs = con.Execute(strSQL)
ThisWorkbook.Sheets(1).Range("A" & x).CopyFromRecordset rs
filename = Dir
x = ThisWorkbook.Sheets(1).Range("K65536").End(xlUp).Row + 1
con.Close
End If
Loop
Set con = Nothing
Set rs = Nothing
Application.ScreenUpdating = True
Call FillBlank("a:e")
MsgBox "OK"
End Sub

'填充空白单元格
Sub FillBlank(area As String)
Dim rngBlank As Range, rngArea As Range
Set rngBlank = Range(area).SpecialCells(xlCellTypeBlanks) '空单元格
For Each rngArea In rngBlank.Areas
rngArea.Cells(1, 1).Offset(-1, 0).Resize(rngArea.Rows.Count + 1, rngArea.Columns.Count).FillDown
Next rngArea
End Sub

循环文件夹汇总所有发票开具Excel文件数据的更多相关文章

  1. Python遍历一个文件夹下有几个Excel文件及每个Excel文件有几个Sheet

    一. 解决问题: 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判 ...

  2. 把一个文件夹下的多个excel文件合并到同一个excel的一个sheet里

    #!/usr/bin/python # -*- coding: UTF-8 -*- import pandas as pd import os if __name__ == '__main__': F ...

  3. Python将文件夹下的文件名写入excel方便统计

    如题,贴代码: 1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件 ...

  4. java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

    java 弹出选择目录框(选择文件夹),获取选择的文件夹路径 java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0;File file = null;String ...

  5. 怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  6. 请问用Inno_Setup打包文件夹时怎么排除其中一个文件?

    请问用Inno_Setup打包文件夹时怎么排除其中一个文件? 该文件夹下有几十个文件,多个文件夹,我要一个个加进去该累死,也容易出问题.不知道能不能实现我要的目的. http://www.jrsoft ...

  7. 递归法绑定文件夹到导航树&在指定文件夹下新建文件夹

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString[&q ...

  8. 手动删除文件夹exe病毒并恢复原来文件夹

    转自手动删除文件夹exe病毒并恢复原来文件夹 经常使用U盘.MP3.MP4等移动硬盘的大家,有时是不是会发现,移动硬盘里有现了exe文件,原来本来有一个文件夹的名字是 音乐 ,但后来发现 音乐 这个文 ...

  9. Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹

    Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹     unit Unit2; interface uses  Windows, Messages, SysUtils, V ...

  10. C#获取文件夹下指定格式的所有文件

    C#获取文件夹下指定格式的所有文件的方法,虽然很简单,但还是分享一下吧,用到时可以稍加修改和优化就可以使用. 获取指定目录下所有文件 //最要使用 System.IO.Directory.GetFil ...

随机推荐

  1. 前端vue的JsPDF html2canvas 生成pdf并以文件流形式上传到后端(转载)

    原文地址 1.首先在文件内引入htmlToPdf.js这里代码引入了html2canvas和jspdf//需要 npm i html2Canvas 和 npm i jspdf 在这里将getPdf 这 ...

  2. vue super flow 多种形状

    1 <template> 2 <v-container class="workflow-container" grid-list-xl fluid> 3 & ...

  3. select multiple 浏览器兼容

    select multiple 时一般是设置 height <select multiple="multiple" style="height:87px;" ...

  4. 百度云+Zotero进行知识管理的方法

    首先,要在zotero的首选项的文件与文件夹里去自定义你的zotero文件夹,这个文件夹就是你的zotero软件的文档存储编辑的文件夹,本来默认是在电脑用户里自动创建的,比如hp/user/zoter ...

  5. c原因学习---指针作为函数的形参

    指针作为函数的形参, 可以改变实参的值. #include<stdio.h> // 交换两个变量的值 int swap(int x, int y) { int k = y; y = x; ...

  6. CRLF和LF的差异

    CRLF, LF 是用来表示文本换行的方式.CR(Carriage Return) 代表回车,对应字符 '\r':LF(Line Feed) 代表换行,对应字符 '\n'.由于历史原因,不同的操作系统 ...

  7. Unity3D——关于质量的设置

    在Unity3D中,你开发一款游戏,可能需要同时发布到不同平台中.比如,对于PC平台,你可能需要引擎打包高质量的材质纹理,光照图信息.而对于Mobile平台,由于CPU上载数据到GPU需要一定宽带,想 ...

  8. 目标检测yolov5检测火龙果

    一.github官方网址 https://github.com/ultralytics/yolov5/tree/v6.1 二.labelme标记数据集: (1).进入虚拟环境 (2).pip inst ...

  9. Linux 服务器配置。

    关于防火墙 1.首先不管防火墙有没有关 都使用systemctl stop firewalld 关闭防火墙 2.然后使用 yum install iptables-services 安装或更新服务 3 ...

  10. px 转化 为 rpx

    小程序 的 px 转化为rpx 在 获取 屏幕高度 后 ,这个单位是px ,可是我的项目是用rpx,所以这里就涉及一个转化的公式了 1rpx = 750 / 设备屏幕宽度 所以 wx.getSyste ...