sub 汇总多个工作簿()

Application.ScreenUpdating = False

Dim wb As Workbook, f As String, l As String, n As String, m As String, j As Integer

f = ThisWorkbook.Path & "\"

l = f & "*.xls"

m = Dir(l)

Do While m <> ""

If m <> ThisWorkbook.Name Then

n = f & m

Workbooks.Open (n)

With ThisWorkbook.activesheet

.Range("b4:at34").ClearContents

For i = 4 To .Range("a1").CurrentRegion.Rows.Count

For j = 2 To .Range("a1").CurrentRegion.Columns.Count - 2 Step 3

For Each wb In Workbooks

If wb.Name <> ThisWorkbook.Name Then

aa = Left(wb.Name, InStrRev(wb.Name, ".") - 1)

If .Cells(2, j).Value = aa Then

.Cells(i, j) = Application.VLookup(.Cells(i, 1), wb.Worksheets(1).Range("a:b"), 2, 0)

.Cells(i, j + 1) = Application.VLookup(.Cells(i, 1), wb.Worksheets(1).Range("a:c"), 3, 0)

If VBA.IsNumeric(ThisWorkbook.activesheet.Cells(i, j + 1)) = False Then

ThisWorkbook.activesheet.Cells(i, j + 2) = 0

ElseIf ThisWorkbook.activesheet.Cells(i, j + 1) = 0 Then

ThisWorkbook.activesheet.Cells(i, j + 2) = 0

Else

ThisWorkbook.activesheet.Cells(i, j + 2) = ThisWorkbook.activesheet.Cells(i, j) / ThisWorkbook.activesheet.Cells(i, j + 1)

End If

End If

End If

Next

Next

Next

End With

End If

m = Dir

Loop

For Each wb In Workbooks

If wb.Name <> ThisWorkbook.Name Then

wb.Close False

End If

Next

Application.ScreenUpdating = True

End Sub

效果图:

不足:

调用excel本身的函数vlookup,数据量大的话,会导致运行速度慢,表格卡住的问题,后期优化,应用数组解决。

[VBA]汇总多个工作簿的指定工作表到同一个工作簿的指定工作表中的更多相关文章

  1. dubbo可通过指定Url方式绕过注册中心直连指定的服务地址

    开发.测试环境可通过指定Url方式绕过注册中心直连指定的服务地址,避免注册中心中服务过多,启动建立连接时间过长,如: <dubbo:reference id="providerServ ...

  2. 【DB2】SQL0501N FETCH 语句或 CLOSE 语句中指定的游标尚未打开,或者游标标量函数引用中的游标变量尚未打开。 SQLSTATE=24501

    在DB2中建立存储过程时使用了隐式游标,在调用的时候报错如下: SQL0501N  FETCH 语句或 CLOSE 语句中指定的游标尚未打开,或者游标标量函数引用中的游标变量尚未打开.  SQLSTA ...

  3. JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

    指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...

  4. jQurey判断下一项是否为指定项、下一项是否有指定项

    jQurey判断下一项是否为指定项.下一项是否有指定项 此例子中,如果某个列表项没有二级列表,那么去掉它的展开.收起按钮.就是前边那个减号. 此时我们需要判断VOC综合治理技术这一项是否含有二级菜单, ...

  5. VBA汇总同目录下的所有工作簿数据到另一个工作簿,并进行统计

    Sub clData() Dim ComputerCount As Object tms = Timer p = ThisWorkbook.Path & "\" f = D ...

  6. [Python学习]错误篇二:切换当前工作目录时出错——FileNotFoundError: [WinError 3] 系统找不到指定的路径

    REFERENCE:<Head First Python> ID:我的第二篇[Python学习] BIRTHDAY:2019.7.13 EXPERIENCE_SHARING:解决切换当前工 ...

  7. VBA将指定Excel表数据批量生成到另一个Excel表中,每个sheet表一行数据

    Sub AutoInputValNewExcel() Dim sh1, sh2 As Worksheet Dim ws1, ws2 As Workbook ) ) ).Sheets() iRows = ...

  8. SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

    最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制 刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题 所以就上网搜了一下,然后改了改,下面 ...

  9. 有没有安全的工作?(99条评论)——结论是没有一劳永逸的工作,要终身学习,IT业刚出道和老手还是有区别的(同样对于新技术,薪资可能是个问题)

    作者: 阮一峰 日期: 2015年12月15日 如果你经常使用互联网,可能知道有一种东西叫做Flash. 它是一种软件,用来制作网页游戏.动画,以及视频播放器.只要观看网络视频,基本都会用到它. 七八 ...

随机推荐

  1. python 写入JSON中文乱码解决方法

    在将一个字典添加入json中时多加入一个参数就可以了 json.dumps(dict(item), ensure_ascii=False) 例子 with open('zh-cn.json','w', ...

  2. linux 指定ftp用户 特定目录及权限

    Linux添加FTP用户并设置权限   在linux中添加ftp用户,并设置相应的权限,操作步骤如下:  1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建 ...

  3. Java并发(基础知识)—— Executor框架及线程池

    在Java并发(基础知识)—— 创建.运行以及停止一个线程中讲解了两种创建线程的方式:直接继承Thread类以及实现Runnable接口并赋给Thread,这两种创建线程的方式在线程比较少的时候是没有 ...

  4. CentOS 安装 oralce Java的图形出错: libXtst.so.6: cannot open shared object file: No such file or directory

    问题类似: shared object file: No such file or directory occurred..java.lang.UnsatisfiedLinkError: /tmp/O ...

  5. shoeBox超实用的雪碧图(Sprite)图制作工具-使用

    从前端优化说起 浏览器载入单张图片的速度基本取决于图片的大小,但是载入多张图片的速度却和另一个要素息息相关-网络请求数,在图片大小和一致的情况下,图片张数越少其请求数越少其载入速度也就越快.所以在使用 ...

  6. 958. Check Completeness of a Binary Tree

    题目来源 题目来源 C++代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...

  7. 第五章 动画 44:动画-使用第三方animate.css类库实现动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  8. beanFactory & FactoryBean区别

    FactoryBean Spring内部实现的一种规范& 开头作为beanName Spring中所有的容器都是FactoryBean 因为容器本身也由容器管理, root来创建 都是单列在I ...

  9. C++内存泄漏的几种情况

    1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数 两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存:二是在类的构造函数中动态的分配了 ...

  10. 20.包含min函数的栈(python)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution: def ...