ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1007|回复: 8

[求助] 请教一个多工作表汇总到多工作表的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-26 21:25 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
所有Distribution Summary Report都是excel格式(.xslx)保存在一个文件夹里,文件的命名都是以格式:"Distribution Summary Report Month 2018_Loan的名称”。需要VBA实现:在一个cell里输入Distribution的月份年份(e.g. 0718),在另一个cell里输入这些Distribution Summary Report保存的文件夹路径,在再另外一个cell里输入我想要生成的payment file保存的路径。然后点击一个按钮运行VBA/宏,Excel自动跑所有的Distrribution Summary Report,然后生成两个payment file。
其中一个payment file是为了所有收现金的客户,文件中包括:客户的名字,客户的银行BSB,银行账号,付款额,和备注(对于每个Loan的客户,备注都是一样的,就是这个loan的名字)。另一个payment file是为了所有reinvestment的客户,文件中包括:客户的名字,【基金的银行BSB,银行账号 (都是同一个)】,付款额,和备注(对于每个Loan的客户,备注都是一样的,就是这个loan的名字)。除了基金的银行BSB和账号(一个固定不变),其他信息都在Distribution Summary Report中,希望VBA能自动复制粘贴到payment file中。名字是英文, 银行bsb 账号都是数字,备注是英文字母和数字结合。
另外这两个payment file的格式要存成(.csv)。
本人只有一点VB基础,基本的定义倒是会,但是在VBA中第一步在CELL里的操作我都不会了。我定义的如下,学习了一下其他大神的代码
Sub 数组查找工作簿汇总()
    Dim vReadData As Variant '定义读取工作簿中表的数据的数组变量
    Dim vData As Variant '定义读取工作簿中表的规范格式数据的数组变量
    Dim wWB As Workbook '定义工作簿变量
    Dim sPath As String '定义文件夹变量
    Dim sFile As String '定义文件名变量
    Dim nRow As Double '定义行数变量
    Dim nCol As Integer '定义列数变量
    Dim bAdd As Boolean '定义是否需要作为新记录添加的逻辑变量
    Dim vFill As Variant '定义将要作为查询结果的数组变量
    Dim nFill As Double '定义查询结果数组的行数的变量
    Dim sAccountNo As String, sEntity As String, sCum As Currency
    Dim sDistribution As Currency, sAmountPaid As Currency, sAmountreinvested As Currency
    sBankAccountName As String, sBSB As String
    sAccountNumber As String  '定义标题变量,currency是货币定义,其他(string)的是定义一个几乎无限长的数组

    Application.ScreenUpdating = False '禁止数据更新,提高运行速度
    vTitle = Split("Account No|Entity|Cum|Distribution|Amount Paid|Amount reinvested|Bank Account Name|BSB|Account Number", "|") '将所有标题用|隔开的字符串根据|分离成数组
    sAccountNo = Trim([A3]) '获取查询系统账号的条件,下面同理
    sEntity = Trim([B3])
    sCum = Trim([C3])
    sDistribution = Trim([D3])
    sAmountPaid = Trim([E3])
    sAmount reinvested = Trim([F3])
    sBankAccountName = Trim([G3])
    sBSB = Trim([G3])
    sAccountNumber = Trim([I3])

    ReDim vFill(1 To 9, 1 To 1) '定义一个9列1行的数组,行数不断增加所以定义在后面
    sPath = wWB.Path & "" '获取本工作簿所在文件夹
    sFile = Dir(sPath & "*.xls*") '查找sPath文件夹内的与xls有关后缀名的文件
    Do While sFile <> "" '如果查找不到相关文件将会返回空字符串,找到的话,将返回文件名的全名
        If sFile <> ThisWorkbook.Name Then '如果找到的文件名不等于本工作簿的文件名
            With Workbooks.Open(sPath & sFile)  '打开工作簿sFile
                vData = .Sheets(1).UsedRange.Value '将第一个表的所有已用单元格的数值赋值给数组
                .Close False '关闭工作簿sFile
            End With
            For nRow = 2 To UBound(vData) 'vData中,第1行是标题,故从2行开始读取数据


然后的条件筛选和分配到两个文件就不太会了,还望各位老师赐教。

附件.7z

17.54 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-26 21:27 | 显示全部楼层
我看了下网上的教程都是多个工作表汇总到一个表,我的这个是分配到两个表就找不到合适的教程了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-26 22:59 | 显示全部楼层
有老师来指导一下吗,哪怕是思路

TA的精华主题

TA的得分主题

发表于 2018-7-27 00:01 | 显示全部楼层
英文不好理解这个都难!楼主是大神,你给个简单的示例文件不好吗!非要你本身的格式为例子!头疼!
另外不管是汇总到几个工作簿都可以当作一个工作簿来处理,无非就是每次要的数据不同!
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-7-27 08:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2018-7-27 09:27 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-27 21:28 | 显示全部楼层
这个是昵称吗 发表于 2018-7-27 00:01
英文不好理解这个都难!楼主是大神,你给个简单的示例文件不好吗!非要你本身的格式为例子!头疼!
另外不 ...

嗯,我重新描述一下。就是我有两个工作表,然后要从两个工作表中根据某个数据的零或非零,把为零的信息汇总到单独一个工作表,非零的为另外一个工作表。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-27 21:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
朱荣兴 发表于 2018-7-27 08:55
说明问题长篇累赘,还夹杂很多的英文,要看懂你的描述,一得有耐心,二还得等补习一下英语,

嗯,我重新描述一下。就是我有两个工作表,然后要从两个工作表中根据某个数据的零或非零,把为零的信息汇总到单独一个工作表,非零的为另外一个工作表。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-27 21:31 | 显示全部楼层
opiona 发表于 2018-7-27 09:27
http://club.excelhome.net/thread-1409141-1-1.html

您的帖子我昨天看了一下,还在研究!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 03:59 , Processed in 0.025101 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表