【精编推荐】Excel理财收支管理代码
- 格式:docx
- 大小:120.73 KB
- 文档页数:66
excel财会函数
Excel是一款强大的财务管理软件,内置了许多实用的财会函数,方便用户进行复杂的财务计算。
本篇文章将介绍Excel中常用的财会函数,包括SUM、AVERAGE、MAX、MIN、IF、VLOOKUP、NPV、IRR等。
1. SUM:求和函数,用于计算一组数值的总和。
2. AVERAGE:平均值函数,用于计算一组数值的平均值。
3. MAX:最大值函数,用于计算一组数值中的最大值。
4. MIN:最小值函数,用于计算一组数值中的最小值。
5. IF:条件函数,用于根据某个条件判断返回不同的值。
6. VLOOKUP:垂直查找函数,用于在一个表格中查找某个值并返回该值所在行的另一个值。
7. NPV:净现值函数,用于计算某个投资项目的净现值。
8. IRR:内部收益率函数,用于计算某个投资项目的内部收益率。
通过使用这些财会函数,可以大大提高Excel的使用效率和精度,为财务管理人员带来更加便捷的工作体验。
- 1 -。
如何使用Excel进行财务规划和预算管理在当今的商业世界中,有效的财务规划和预算管理对于个人和企业的成功至关重要。
Excel 作为一款强大的电子表格软件,为我们提供了便捷且高效的工具来实现这一目标。
下面,让我们一步步了解如何使用 Excel 进行财务规划和预算管理。
首先,在开始之前,我们需要明确财务规划和预算管理的重要性。
它不仅能帮助我们清晰地了解资金的流向,预测未来的财务状况,还能为决策提供有力的依据,确保资源的合理分配和有效利用。
第一步,创建一个新的 Excel 工作簿。
在第一个工作表中,我们可以命名为“基础信息”。
在这个工作表中,我们需要输入一些关键的基础数据,比如收入来源、支出项目、预算周期等。
对于收入来源,详细列出所有可能的渠道,如工资收入、投资收益、租金收入等,并注明每个来源的预计金额和频率(例如,每月、每年等)。
支出项目则可以包括日常生活开销(如食品、住房、水电费等)、保险费用、娱乐消费、教育支出等。
同样,要注明每个项目的预计金额和支付频率。
预算周期的设定可以是月度、季度或年度,根据您的实际需求和管理习惯来决定。
接下来,创建一个名为“收入预算”的工作表。
在这里,根据基础信息中设定的收入来源和频率,按月或其他预算周期来计算并汇总收入。
使用 Excel 的公式功能可以轻松实现这一点。
例如,如果您的工资收入每月为 8000 元,在对应的单元格中输入“=8000”即可。
对于不定期的投资收益等,可以根据预计的情况进行估算和输入。
然后,创建“支出预算”工作表。
按照支出项目和支付频率,计算每个周期的预计支出。
例如,每月的房租 2000 元,就在相应的单元格输入“=2000”。
对于一些不固定的支出,如医疗费用等,可以根据过往经验和实际情况进行合理估算。
在完成收入预算和支出预算的编制后,创建一个“汇总分析”工作表。
在这个工作表中,通过公式计算出每个预算周期的收支差额(即收入减去支出)。
如果差额为正数,说明有盈余;如果为负数,则表示存在资金缺口。
20111月2月3月4月5月6月7月8月9月10月每月收入0000000000每月支出0000000000每月余额0000000000伙食费0000000000交通出行0000000000日用杂货0000000000化妆保养0000000000治装费0000000000文化教养0000000000休闲娱乐0000000000喜庆交际0000000000美发费0000000000家电数码0000000000网络通讯0000000000医疗保健0000000000旅行0000000000家用0000000000水费0000000000电费0000000000瓦斯费0000000000房款(买/租)0000000000其他各月收支总计各项支出分类统计记帐年度项目伙食费0%交通出行0%日用杂货化妆保养0%治装费0%文化教养休闲娱乐0%喜庆交际0%美发费0%家电数码0%网络通讯医疗保健旅行家用0%水费电费瓦斯费房款(买/租)其他各项支出分类统计图伙食费交通出行日用杂货化妆保养治装费文化教养休闲娱网络通讯医疗保健旅行家用水费电费瓦斯费20,000每月收支走势图2,0004,0006,0008,00010,00012,00014,00016,00018,0001月2月3月4月5月6月7月8月金额(¥)预算11月12月年度总计支出占比每月预算年度预算000///000/000///000%000%000%000%000%000%000%000%000%000%000%000%000%000%000%000%000%000%000%休闲娱乐喜庆交际美发费家电数码瓦斯费房款(买/租)其他每月收入每月支出9月10月11月12月。
Excel函数在财务计算中扮演着非常重要的角色,能够帮助用户进行各种财务计算,简化繁琐的计算过程,提高工作效率。
本文将对一些常用的Excel函数进行介绍和分析,并针对其在财务计算中的具体表达式和用法进行详细的说明。
一、SUM函数1.1 SUM函数是Excel中最基本、最常用的函数之一,用于对选定的几个数字范围进行求和运算。
在财务计算中,SUM函数通常用于计算某个时间段内的收入、支出或利润总和。
1.2 具体表达式:=SUM(数值1,数值2,...)1.3 举例:=SUM(A1:A10)表示对单元格A1到A10的数值进行求和运算。
二、AVERAGE函数2.1 AVERAGE函数用于计算选定数字范围的平均值,是一种常用的财务分析工具。
在财务报表中,经常会用到AVERAGE函数来计算某项指标的平均水平,以便进行业绩评估和比较分析。
2.2 具体表达式:=AVERAGE(数值1,数值2,...)2.3 举例:=AVERAGE(B1:B10)表示对单元格B1到B10的数值进行平均值计算。
三、PV函数3.1 PV函数用于计算投资或贷款的现值,是财务领域中非常重要的函数之一。
在财务决策中,人们经常需要用PV函数来评估不同投资项目或贷款方案的价值大小。
3.2 具体表达式:=PV(利率,期数,每期支付金额,未来值,类型)3.3 举例:=PV(0.1,5,-100,0,0)表示对利率为10、期数为5年、每年支付100元的投资项目进行现值计算。
四、FV函数4.1 FV函数用于计算未来某项投资的价值,是财务计算中常用的函数之一。
人们常常会用FV函数来预测某项投资在未来的价值,以便做出投资决策。
4.2 具体表达式:=FV(利率,期数,每期支付金额,现值,类型)4.3 举例:=FV(0.1,5,-100,0,0)表示对利率为10、期数为5年、每年支付100元的投资项目进行未来价值计算。
五、RATE函数5.1 RATE函数用于计算投资的内部收益率,是评估投资项目收益率的重要工具。
提升个人财务管理的Excel公式在当今社会,个人财务管理已经成为了每个人生活的重要一环。
无论是家庭经济还是个人收支,都需要进行有效的管理和控制。
而Excel作为一款功能强大的电子表格软件,提供了多种公式和函数,可以帮助人们更方便地进行个人财务管理。
本文将介绍一些常用的Excel公式,以帮助您提升个人财务管理能力。
1. SUM(求和函数)SUM函数是Excel中最为常用的函数之一,它可以用来求取一个区域内数值的总和。
在个人财务管理中,我们可以使用SUM函数来计算每个月份的总收入和总支出。
比如,我们可以将每个月的收入和支出数据输入到Excel表格中的不同列,然后使用SUM函数求取总和。
2. AVERAGE(求平均值函数)AVERAGE函数可以计算一组数据的平均值。
在个人财务管理中,我们可以使用AVERAGE函数来计算每个月份的平均收入和平均支出。
这将帮助我们更清楚地了解每个月的经济状况。
3. MAX和MIN(求最大值和最小值函数)MAX和MIN函数可以分别求取一组数据的最大值和最小值。
在个人财务管理中,我们可以使用MAX函数找出最高的月收入,使用MIN函数找出最低的月支出。
这将帮助我们了解自己的经济情况,以便做出相应的调整和改进。
4. IF(逻辑判断函数)IF函数可以进行逻辑判断,根据条件返回不同的结果。
在个人财务管理中,我们可以使用IF函数来判断某个月份是否盈利或者亏损。
如果某个月份的支出超过了收入,我们可以设置条件让Excel自动计算出亏损的金额。
5. PMT(贷款计算函数)PMT函数可以计算贷款的还款金额。
在个人财务管理中,我们可能需要贷款来购买房屋或车辆等大件消费品。
使用PMT函数可以方便地计算出每月的还款金额,帮助我们做好还款计划。
6. VLOOKUP(垂直查找函数)VLOOKUP函数可以在一个表格中查找某个值,并返回与之对应的值。
在个人财务管理中,我们可以使用VLOOKUP函数来查询某项支出属于哪个类别。
财务常用函数在Excel中应用及示范在财务工作中,Excel提供了许多有用的函数来帮助处理数据和计算。
以下是几个财务工作中常用的函数:1.PV,FV,PMT:这些函数用于计算贷款或投资的现值(PV)、未来价值(FV)以及每期支付额(PMT)。
★PV(rate,nper,pmt,[fv],[type])★FV(rate,nper,pmt,[pv],[type])★PMT(rate,nper,pv,[fv],[type])2.IRR:内部收益率(InternalRateofReturn),用于计算一系列现金流的内部收益率。
★IRR(values,[guess])3.NPV:净现值(NetPresentValue),用于计算一系列未来现金流的净现值。
★NPV(rate,value1,value2,...)4.DURATION:计算假设再投资利率不变的情况下,按固定利率及到期日支付的证券的麦考利修正久期。
★DURATION(settlement,maturity,rate,yld,frequency,[basis])在财务管理中,PMT和NPV是非常常用的函数,因为它们直接涉及到现金流的计算,这是财务分析中的核心部分。
★PMT函数主要用于计算等额本息还款方式下的每期付款额。
这对于计算贷款还款计划非常有用。
★PMT(rate,nper,pv,[fv],[type])★NPV函数用于计算投资项目的净现值,它可以帮助评估投资项目的价值,从而做出更好的财务决策。
★NPV(rate,value1,value2,...)在实际操作中,NPV经常用来评估投资项目是否可行,因为它考虑了货币的时间价值。
而PMT则常用于处理贷款和分期付款的情况。
如果你需要计算某个投资项目的可行性,可能用到NPV;如果你需要计算每月的贷款还款额,则可能用到PMT。
这两个函数都非常基础且重要。
PMT和NPV这两个函数在财务管理和分析中有广泛的应用场景:PMTPMT主要用于计算等额本息(也称为“等额本金”)还款方式下的每期付款额。
excel工程收支管理表格-范文模板及概述示例1:Excel工程收支管理表格导言:在进行工程项目的管理过程中,掌握项目的收支情况是非常重要的。
通过建立一个有效的excel工程收支管理表格,可以帮助项目经理和财务人员跟踪和控制项目的资金流动,确保项目的财务稳定性和可持续性。
本文将介绍如何设计和利用excel工程收支管理表格,以便更好地管理工程项目的收支。
一、表格的基本结构1. 收支分类:首先,要将收支进行合理的分类,比如劳务费用、材料费用、设备费用等等。
在表格的第一列或第一行设置相应的收支分类,用于记录和计算各项费用。
2. 时间段:在表格中的第一行或第一列,设置时间段,通常以月份为单位,用于记录每个时间段内的收入和支出情况。
3. 收支明细:根据项目的具体情况,设置收支明细栏,用于详细记录每一笔收入和支出的具体细节,比如日期、金额、经手人等等。
二、公式与计算1. 总收入和总支出:在表格的底部或右侧,使用公式计算每个时间段内的总收入和总支出。
可以使用SUM函数或者自定义公式进行计算。
2. 结余:利用公式计算每个时间段的结余,即总收入减去总支出。
结余可以直观地反映项目的财务状况,是否有资金盈余或者赤字。
三、数据分析与图表1. 数据分析:根据表格中的收支数据,可以进行各种数据分析。
比如计算每个时间段的平均收入和支出,比较不同时间段之间的差异,找出收入和支出的主要来源等等。
2. 图表制作:利用Excel内置的图表功能,可以轻松地将收支数据制作成柱状图、折线图、饼图等图表,直观地展示项目的收支情况和趋势。
图表的使用可以帮助更好地理解和分析收支数据。
四、数据的更新与维护1. 更新数据:在实际的项目管理过程中,收入和支出数据是不断变化的。
因此,在每个时间段结束后,需要及时更新表格中的收入和支出数据,以确保数据的准确性。
2. 数据维护:保留历史数据是非常重要的。
在每个时间段结束后,可以将该时间段的数据进行存档,以便后续的查询和分析。
Excel助你轻松管理个人财务作为一种强大的办公软件,Excel不仅可以用于数据处理和分析,还可以轻松管理个人财务。
本文将介绍如何利用Excel的功能和工具来实现个人财务的有效管理。
一、建立个人财务表格在Excel中,我们可以创建一个个人财务表格来记录收入和支出情况。
首先,我们可以使用工作表中的行和列来创建一个简单的表格框架。
可以添加以下列:日期、收入、支出、类别、备注等。
二、记录收入和支出在表格中添加收入和支出的具体数值。
可以根据日期和类别将它们记录在相应的行和列中。
例如,如果某天收入100元,可以在“收入”列中的相应单元格中输入100,并在日期列中输入对应的日期。
三、计算总收入和总支出利用Excel的公式功能,可以轻松计算出总收入和总支出。
找到最后一行的下方一行,在“收入”和“支出”列下方添加一个单元格,分别输入“总收入”和“总支出”。
然后,在对应的单元格中使用SUM函数计算总数。
例如,可以在“总收入”单元格中输入“=SUM(B2:B10)”(假设B2到B10为收入的单元格范围),在“总支出”单元格中输入“=SUM(C2:C10)”(假设C2到C10为支出的单元格范围)。
四、计算净收入净收入等于总收入减去总支出。
在“净收入”单元格中使用减法公式计算结果。
例如,可以在“净收入”单元格中输入“=总收入-总支出”。
五、创建图表分析通过Excel的图表功能,可以可视化地展示个人财务数据。
选择要制作图表的数据范围,然后点击“插入”选项卡中的“图表”按钮。
在弹出的对话框中,选择合适的图表类型,如柱状图、折线图等。
按照向导设置图表属性,最终生成个人财务图表。
六、设定预算Excel的条件格式功能可以帮助我们设定财务预算。
选中支出列(假设为C列),点击“开始”选项卡中的“条件格式”按钮。
选择“新建规则”并选择“使用公式确定要设置的单元格格式”。
在公式输入框中输入条件比较公式,例如“=C2>100”(假设预算为100元),并设置格式为红色填充。
EXCEL常用财务函数介绍Excel是一款常用的办公软件,它为用户提供了许多强大的函数来进行各种计算和分析。
在财务领域,Excel的财务函数是必不可少的工具。
本文将介绍一些常用的财务函数,帮助读者更好地利用Excel进行财务分析和决策。
利率函数利率函数是财务分析中经常使用的一类函数,它们用于计算利率、利息和还款金额等。
以下是几个常用的利率函数:利率函数:RATERATE函数用于计算投资的年利率。
它的语法如下:RATE(nper, pmt, pv, [fv], [type], [guess])•nper:总期数(还款周期)•pmt:每期支付的款项•pv:投资的现值(贷款金额)•fv(可选):未来值(投资结束时的值),默认为0•type(可选):款项的支付类型,0为期末支付,1为期初支付,默认为0•guess(可选):猜测的利率值,默认为0.1(10%)利率函数示例:假设有一个贷款总额为10000元,年利率为5%,每月等额还本付息(总共36期),每月还款金额为280元。
可以使用以下函数来计算年利率:=RATE(36, -280, 10000)这将返回贷款的年利率,约为5.47%。
利率函数注意事项:•如果投资的现值为正数,则需要向pmt参数添加负号。
•nper参数表示总期数,与实际情况保持一致。
例如,如果每年还一次款,则nper应为总年数;如果每季度还一次款,则nper应为总年数乘以4。
现金流函数现金流函数用于计算现金流的净现值、内部收益率等。
下面是一些常用的现金流函数:净现值函数:NPVNPV函数用于计算投资项目的净现值。
它的语法如下:NPV(rate, value1, [value2], ...)•rate:贴现率,也即资金的报酬率•value1, value2:现金流的各期金额,以逗号分隔假设有一个投资项目,需要投入10000元,每年末收益为3000元,持续5年,并且贴现率为10%。
可以使用以下函数来计算净现值:=NPV(10%, -10000, 3000, 3000, 3000, 3000, 3000)这将返回投资项目的净现值,约为4314.69元。
如何使用Excel进行财务管理在当今的数字化时代,Excel已成为财务管理的重要工具之一。
它提供了一系列强大的功能,帮助人们跟踪收入、支出和资产,并生成各种可视化报表。
本文将介绍如何使用Excel进行财务管理,以及一些有效的技巧和最佳实践。
1. 创建财务管理表格开始之前,先要创建一个财务管理的Excel工作表。
在工作表的第一行创建以下列标签:日期、收入、支出、余额和备注。
确保每一列都具有明确的数据类型,例如日期应该以日期格式输入,金额应该以货币格式输入。
2. 跟踪收入和支出使用Excel可以轻松跟踪个人或家庭的收入和支出情况。
在"收入"和"支出"列中,按照每个交易的日期记录每笔交易的金额。
对于收入,使用正数表示,而对于支出,使用负数表示。
通过在每一行上添加新的交易,可以随时更新财务数据。
3. 计算余额在"余额"列中,使用Excel的公式功能计算余额。
在第一行余额单元格中输入初始余额,然后在下一行余额单元格中使用公式"=上一行余额+本行收入+本行支出"。
通过将公式拖动到其他行,可以自动计算每行的余额。
4. 生成报表Excel提供了丰富的报表生成功能,使您能够生成各种财务报表。
例如,可以使用饼图显示不同类别的支出所占比例,使用折线图跟踪收入和支出的趋势,或使用柱状图比较不同月份的收入和支出。
5. 设置预算Excel还可以帮助您设置和跟踪预算。
在工作表中创建一个"预算"列,并在每个月份中输入预算金额。
然后,使用条件格式功能使实际支出与预算进行比较。
当实际支出超出预算时,Excel会自动突出显示。
6. 使用筛选和排序功能Excel的筛选和排序功能可以帮助您更好地查看和分析财务数据。
使用筛选功能可以根据特定的条件过滤数据,例如按照日期范围、收入或支出类别进行筛选。
使用排序功能可以按照特定列(如日期或金额)对数据进行升序或降序排序。
EXCEL中的金融函数及其实际应用
在Excel这个强大的工具中,金融函数扮演着关键的角色,帮助用户进行各种金融计算和分析。
让我们一起来深入了解Excel中的金融函数以及它们在实际应用中的价值和用途。
利息函数
利息函数在金融领域中应用广泛,通过Excel的利息函数,可以方便地计算贷款利息、投资回报等。
常见的利息函数包括利息支付函数和未来价值函数,它们能够帮助用户更好地管理资金流动。
投资评估函数
Excel中的投资评估函数如NPV(净现值)、IRR(内部收益率)等能够帮助用户评估投资项目的盈利能力和回报率,帮助做出明智的投资决策。
风险分析函数
金融领域十分重视风险管理,而Excel提供的风险分析函数如VAR(价值风险)、STDEV(标准偏差)等可以帮助用户评估投资组合的风险水平,从而制定相应的风险控制策略。
实际案例分析
举例来说,假设您想要评估一项投资项目的盈利能力,您可以利用Excel的NPV函数计算项目的净现值,结合IRR函数计算项目的内部收益率,从而全面评估投资的潜在回报。
另外,如果您需要进行投资组合的风险分析,可以运用Excel中的VAR 函数计算投资组合可能的价值风险,通过STDEV函数计算投资组合的标准差,帮助您更好地控制风险。
通过深入了解并灵活运用Excel中的金融函数,您可以更加高效地进行金融数据处理和分析,为金融决策提供有力支持。
Excel中的金融函数不仅能够简化复杂的金融计算,还可以帮助用户更准确地评估投资风险和回报,是金融从业者和投资者必备的工具之一。
立即掌握这些金融函数的应用技巧,提升您的金融分析能力!。
Excel收支理财管理及财务知识分析系统Dim lv_huo(1 To 1000)Dim lv_ding1_3(1 To 1000)Dim lv_ding1_6(1 To 1000)Dim lv_ding1_12(1 To 1000)Dim lv_ding1_24(1 To 1000)Dim lv_ding1_36(1 To 1000)Dim lv_ding1_60(1 To 1000)Dim lv_ding2_12(1 To 1000)Dim lv_ding2_36(1 To 1000)Dim lv_ding2_60(1 To 1000)Dim rng As Rangern = Range("b65536").End(xlUp).Row '最大行号cn = Range("b2").End(xlToRight).Column '最大列号Application.ScreenUpdating = False'数据初始化If Sheet1.Cells(ActiveCell.Row, 1) = "" And Sheet1.Cells(ActiveCell.Row, 3) = "" And Sheet1.Cells(ActiveCell.Row, 2) <> "" ThenSheet1.Cells(ActiveCell.Row, 1) = "中国银行"End IfFor y = 3 To rnIf Sheet1.Cells(y, 1) <> "" ThenSheet4.Select'查找银行名称Set rng = Sheet4.[B:B].Find(Sheet1.Cells(y, 1))'定位银行If Not rng Is Nothing Then'rng.Font.ColorIndex = 3 '颜色暂不设置Application.GotoReference:=rng.Address(, , xlR1C1)End IfEnd Iflv_huo(y) = Sheet4.Cells(ActiveCell.Row + 3, ActiveCell.Column + 1)lv_ding1_3(y) = Sheet4.Cells(ActiveCell.Row + 6, ActiveCell.Column + 1)lv_ding1_6(y) = Sheet4.Cells(ActiveCell.Row + 7, ActiveCell.Column + 1)lv_ding1_12(y) = Sheet4.Cells(ActiveCell.Row + 8, ActiveCell.Column + 1)lv_ding1_24(y) = Sheet4.Cells(ActiveCell.Row + 9, ActiveCell.Column + 1)lv_ding1_36(y) = Sheet4.Cells(ActiveCell.Row + 10, ActiveCell.Column + 1)lv_ding1_60(y) = Sheet4.Cells(ActiveCell.Row + 11, ActiveCell.Column + 1)lv_ding2_12(y) = Sheet4.Cells(ActiveCell.Row + 13, ActiveCell.Column + 1)lv_ding2_36(y) = Sheet4.Cells(ActiveCell.Row + 14, ActiveCell.Column + 1)lv_ding2_60(y) =Sheet4.Cells(ActiveCell.Row + 15, ActiveCell.Column + 1)'返回sheet“银行项目”Sheet1.SelectNext'--------------'格式初始化With Range(Sheet1.Cells(3, 1), Sheet1.Cells(rn + 30, cn)).Interior.Pattern = xlNone.TintAndShade = 0.PatternTintAndShade = 0End With'---------------'取消列表With Sheet1.Range("A:A").Validation.Delete.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _:=xlBetween.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithWith Sheet1.Range("C:C").Validation.Delete.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _:=xlBetween.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowError = TrueEnd With'银行列表更新rn4 = Sheet4.Range("e65536").End(xlUp).Rowf = "=基本信息!E5:E" & rn4 & ""With Range("A3").Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'项目列表With Range("C3").Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="活期,整存整取,整存零取,零存整取,存本取息,定活两便".IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithFor Z = 3 To rn'银行列表更新rn4 =Sheet4.Range("e65536").End(xlUp).Rowf = "=基本信息!E5:E" & rn4 & ""With Range("A" & Z + 1).Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'项目列表With Range("C" & Z + 1).Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _xlBetween, Formula1:="活期,整存整取,整存零取,零存整取,存本取息,定活两便".IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'-----------------------'年利率If Sheet1.Cells(Z, 3) = "Huo" Or Sheet1.Cells(Z, 3) = "活期" Thenlv = lv_huo(Z)Sheet1.Cells(Z, 6) = lvEnd IfIf Sheet1.Cells(Z, 3) = "ZZ" OrSheet1.Cells(Z, 3) = "整存整取" ThenIf Sheet1.Cells(Z, 5) < 6 Thenlv = lv_ding1_3(Z) '3个月End IfIf Sheet1.Cells(Z, 5) >= 6 And Sheet1.Cells(Z, 5) < 12 Thenlv = lv_ding1_6(Z) '半年End IfIf Sheet1.Cells(Z, 5) >= 12 And Sheet1.Cells(Z, 5) < 24 Thenlv = lv_ding1_12(Z) '1年End IfIf Sheet1.Cells(Z, 5) >= 24 And Sheet1.Cells(Z, 5) < 36 Thenlv = lv_ding1_24(Z) '2年End IfIf Sheet1.Cells(Z, 5) >= 36 And Sheet1.Cells(Z, 5) < 60 Thenlv = lv_ding1_36(Z) '3年End IfIf Sheet1.Cells(Z, 5) >= 60 Thenlv = lv_ding1_60(Z) '5年End IfSheet1.Cells(Z, 6) = lvEnd IfIf Sheet1.Cells(Z, 3) = "ZL LZ BX" OrSheet1.Cells(Z, 3) = "零存整取" Or Sheet1.Cells(Z, 3) = "整存零取" Or Sheet1.Cells(Z, 3) = "存本取息" ThenIf Sheet1.Cells(Z, 5) >= 12 And Sheet1.Cells(Z, 5) < 36 Thenlv = lv_ding2_12(Z) '1年End IfIf Sheet1.Cells(Z, 5) >= 36 And Sheet1.Cells(Z, 5) < 60 Thenlv = lv_ding2_36(Z) '3年End IfIf Sheet1.Cells(Z, 5) >= 60 Thenlv = lv_ding2_60(Z) '5年End IfSheet1.Cells(Z, 6) = lvEnd IfIf Sheet1.Cells(Z, 3) = "定活两便" Then If Sheet1.Cells(Z, 4) = "" And Sheet1.Cells(Z, 5) = "" Thendh = MsgBox("未区分各家银行计算方法,结果不一定准确,按利率60%计算?", vbYesNo, "提示")If dh = vbYes ThenIf Sheet1.Cells(Z, 5) < 6Thenlv = lv_ding1_3(Z) '3个月End IfIf Sheet1.Cells(Z, 5) >= 6And Sheet1.Cells(Z, 5) < 12 Thenlv = lv_ding1_6(Z) '半年End IfIf Sheet1.Cells(Z, 5) >= 12 And Sheet1.Cells(Z, 5) < 24 Thenlv = lv_ding1_12(Z) '1年End IfIf Sheet1.Cells(Z, 5) >= 24 And Sheet1.Cells(Z, 5) < 36 Thenlv = lv_ding1_24(Z) '2年End IfIf Sheet1.Cells(Z, 5) >= 36 And Sheet1.Cells(Z, 5) < 60 Thenlv = lv_ding1_36(Z) '3年End IfIf Sheet1.Cells(Z, 5) >= 60 Thenlv = lv_ding1_60(Z) '5年End Iflv = lv * 0.6ElseSheet1.Cells(Z, 3) = ""End IfElseIf Sheet1.Cells(Z, 5) < 6 Thenlv = lv_ding1_3(Z) '3个月End IfIf Sheet1.Cells(Z, 5) >= 6 AndSheet1.Cells(Z, 5) < 12 Thenlv = lv_ding1_6(Z) '半年 End IfIf Sheet1.Cells(Z, 5) >= 12 And Sheet1.Cells(Z, 5) < 24 Thenlv = lv_ding1_12(Z) '1年End IfIf Sheet1.Cells(Z, 5) >= 24 And Sheet1.Cells(Z, 5) < 36 Thenlv = lv_ding1_24(Z) '2年 End IfIf Sheet1.Cells(Z, 5) >= 36 And Sheet1.Cells(Z, 5) < 60 Thenlv = lv_ding1_36(Z) '3年 End IfIf Sheet1.Cells(Z, 5) >= 60 Thenlv = lv_ding1_60(Z) '5年lv = lv * 0.6End IfSheet1.Cells(Z, 6) = lvEnd If'-------------------------------------------On Error Resume NextIf Target.Column = 4 And Target.Value <> "存入日期" And Target.Row > 2 And Target.Row <= rn ThenCalendar1.Visible = True '日历控件Calendar1.Left = Cells(Target.Row, 4).LeftCalendar1.Top = Cells(Target.Row + 1, 4).TopWith Calendar1 '当前日期.Year = Year(Now).Month = Month(Now).Day = Day(Now)ElseIf Target.Column = 1 And Target.Row = 1 ThenCalendar1.Visible = True '日历控件Calendar1.Left = Cells(Target.Row, 1).LeftCalendar1.Top = Cells(Target.Row + 1, 1).TopWith Calendar1 '当前日期.Year = Year(Now).Month = Month(Now).Day = Day(Now)End WithElseCalendar1.Visible = FalseEnd IfOn Error Resume Nextnian = Int(Sheet1.Cells(Z, 5) / 12) '年数yue = Sheet1.Cells(Z, 5) - 12 * nian'月数lixishui = 0 '利息税率daoqi = Sheet1.Cells(Z, 2) + Sheet1.Cells(Z, 2) * (lv / 100) * (Sheet1.Cells(Z, 5) / 12) * (1 - lixishui)'到期总数'当前日期与存入日期相差月数If Year(Sheet1.Cells(1, 1)) >= Year(Sheet1.Cells(Z, 4)) And Month(Sheet1.Cells(1, 1)) >= Month(Sheet1.Cells(Z, 4)) And Day(Sheet1.Cells(1, 1)) >= Day(Sheet1.Cells(Z, 4)) Thenm = (Year(Sheet1.Cells(1, 1)) - Year(Sheet1.Cells(Z, 4))) * 12 + Month(Sheet1.Cells(1, 1)) - Month(Sheet1.Cells(Z, 4))End IfIf Year(Sheet1.Cells(1, 1)) >= Year(Sheet1.Cells(Z, 4)) AndMonth(Sheet1.Cells(Z, 4)) And Day(Sheet1.Cells(1, 1)) < Day(Sheet1.Cells(Z, 4)) Thenm = (Year(Sheet1.Cells(1, 1)) - Year(Sheet1.Cells(Z, 4))) * 12 + Month(Sheet1.Cells(1, 1)) - Month(Sheet1.Cells(Z, 4)) - 1End IfIf Year(Sheet1.Cells(1, 1)) >= Year(Sheet1.Cells(Z, 4)) And Month(Sheet1.Cells(1, 1)) < Month(Sheet1.Cells(Z, 4)) And Day(Sheet1.Cells(1, 1)) >= Day(Sheet1.Cells(Z, 4)) Thenm = (Year(Sheet1.Cells(1, 1)) - Year(Sheet1.Cells(Z, 4))) * 12 - Month(Sheet1.Cells(1, 1)) + Month(Sheet1.Cells(Z, 4))End IfIf Year(Sheet1.Cells(1, 1)) >= Year(Sheet1.Cells(Z, 4)) AndMonth(Sheet1.Cells(Z, 4)) And Day(Sheet1.Cells(1, 1)) >= Day(Sheet1.Cells(Z, 4)) Thenm = (Year(Sheet1.Cells(1, 1)) - Year(Sheet1.Cells(Z, 4))) * 12 - Month(Sheet1.Cells(1, 1)) + Month(Sheet1.Cells(Z, 4)) - 1End IfIf Year(Sheet1.Cells(1, 1)) < Year(Sheet1.Cells(Z, 4)) Thenm = 0End IfIf Year(Sheet1.Cells(1, 1)) = Year(Sheet1.Cells(Z, 4)) And Month(Sheet1.Cells(1, 1)) < Month(Sheet1.Cells(Z, 4)) Thenm = 0End IfIf Year(Sheet1.Cells(1, 1)) = Year(Sheet1.Cells(Z, 4)) And Month(Sheet1.Cells(1, 1)) =Day(Sheet1.Cells(1, 1)) < Day(Sheet1.Cells(Z, 4)) Thenm = 0End If'----------------------------zhuan = Int(m / Sheet1.Cells(Z, 5)) - 1 '转存次数If zhuan < 0 Thenzhuan = 0End If'数据写入If Z > 2 And Sheet1.Cells(Z, 6) <> ""ThenSheet1.Cells(Z, 7) = daoqi '---到期总数If Sheet1.Cells(Z, 4) <> "" ThenSheet1.Cells(Z,8).FormulaR1C1 = _"=DATE(YEAR(RC[-4]),MONTH(RC[-4])+RC[-3], DAY(RC[-4]))" '---到期日期End IfEnd IfIf Sheet1.Cells(Z, 7) <> "" ThenSheet1.Cells(Z, 9) = (Sheet1.Cells(Z, 7) - Sheet1.Cells(Z, 2))'---利息ElseSheet1.Cells(Z, 9) = ""End IfSheet1.Cells(Z, 10) = zhuan '---转存次数zhuancun(1) = Sheet1.Cells(Z, 7) + Sheet1.Cells(Z, 7) * (lv / 100) * (Sheet1.Cells(Z, 5) / 12) * (1 - lixishui)'第一次转存到期总数If zhuan >= 2 ThenFor i = 2 To zhuanzhuancun(i) = zhuancun(i - 1) + zhuancun(i - 1) * (lv / 100) * (Sheet1.Cells(Z, 5) / 12) * (1 - lixishui)NextEnd IfIf Int(m / Sheet1.Cells(Z, 5)) = m /Sheet1.Cells(Z, 5) ThenSheet1.Cells(Z, 11).FormulaR1C1 =_"=DATE(YEAR(RC[-7]),MONTH(RC[-7])+RC[-6]* (RC[-1]+1),DAY(RC[-7]))" '---转存到期日期ElseSheet1.Cells(Z, 11).FormulaR1C1 =_"=DATE(YEAR(RC[-7]),MONTH(RC[-7])+RC[-6]* (RC[-1]+1),DAY(RC[-7]))" '---转存到期日期End IfIf zhuan < 1 ThenSheet1.Cells(Z, 10) = ""Sheet1.Cells(Z, 11) = ""Sheet1.Cells(Z, 12) = Sheet1.Cells(Z, 7)Sheet1.Cells(Z, 13) = Sheet1.Cells(Z, 9)ElseSheet1.Cells(Z, 12) = zhuancun(zhuan) '---当前总额Sheet1.Cells(Z, 13) = Sheet1.Cells(Z, 12) - Sheet1.Cells(Z, 2) '---当前利息End If'-------------------------------------'格式If Z Mod 2 = 1 Then '当前行数除以2的余数为1(奇数)With Range(Sheet1.Cells(Z, 1),Sheet1.Cells(Z, 14)).Interior.Pattern = xlSolid.PatternColorIndex = xlAutomatic.Color = 10198015.TintAndShade = 0.PatternTintAndShade = 0End WithElseIf Z Mod 2 = 0 Then '当前行数除以2的余数为0(偶数)With Range(Sheet1.Cells(Z, 1), Sheet1.Cells(Z, 14)).Interior.Pattern = xlSolid.PatternColorIndex = xlAutomatic.Color = 13421823.TintAndShade = 0.PatternTintAndShade = 0End WithEnd If'---------------------------------------'未选择银行不计利率If Sheet1.Cells(Z, 1) = "" Thenlv = 0Sheet1.Cells(Z, 6) = ""Sheet1.Cells(Z, 7) = ""Sheet1.Cells(Z, 9) = ""End If'活期不考虑到期时间,按存入时间到当前日期利息计算If Sheet1.Cells(Z, 3) = "活期" Thentian = Date - Sheet1.Cells(Z, 4)nian1 = Int(tian / 365) '年数yue1 = Sheet1.Cells(Z, 5) - 12 * nian '月数Sheet1.Cells(Z, 7) = Sheet1.Cells(Z, 2) + Sheet1.Cells(Z, 2) * lv / 100 * (tian / 365)Sheet1.Cells(Z, 9) = Sheet1.Cells(Z, 7) - Sheet1.Cells(Z, 2)Sheet1.Cells(Z, 5) = ""Sheet1.Cells(Z, 6) = lvSheet1.Cells(Z, 8) = ""Sheet1.Cells(Z, 10) = ""Sheet1.Cells(Z, 11) = ""Sheet1.Cells(Z, 12) = Sheet1.Cells(Z, 7)Sheet1.Cells(Z, 13) = Sheet1.Cells(Z, 9)End If'未选择存入时间If Sheet1.Cells(Z, 4) = "" ThenSheet1.Cells(Z, 9) = ""Sheet1.Cells(Z, 10) = ""Sheet1.Cells(Z, 11) = ""Sheet1.Cells(Z, 13) = ""Sheet1.Cells(Z, 7) = Sheet1.Cells(Z, 2)Sheet1.Cells(Z, 12) = Sheet1.Cells(Z, 2)End If'到期提示If Sheet1.Cells(Z, 8) < Sheet1.Cells(1, 1) ThenWith Sheet1.Cells(Z, 8).Font.Color = -65281.TintAndShade = 0End WithElseWith Sheet1.Cells(Z, 8).Font.ThemeColor = xlThemeColorLight1.TintAndShade = 0End WithEnd IfIf Sheet1.Cells(Z, 11) < Sheet1.Cells(1, 1) ThenWith Sheet1.Cells(Z, 11).Font.Color = -65281.TintAndShade = 0End WithElseWith Sheet1.Cells(Z, 11).Font.ThemeColor = xlThemeColorLight1.TintAndShade = 0End WithEnd IfNext'------------------------------------------------------------------For j = 3 To rn + 1000If Sheet1.Cells(j, 2) = "" And Sheet1.Cells(j, 3) <> "" Thensc = MsgBox("确认删除该项目?", vbYesNo, "提示")If sc = vbYes ThenSheet1.Cells(j, 1) = ""Sheet1.Cells(j, 3) = ""Sheet1.Cells(j, 4) = ""Sheet1.Cells(j, 5) = ""Sheet1.Cells(j, 6) = ""Sheet1.Cells(j, 7) = ""Sheet1.Cells(j, 8) = ""Sheet1.Cells(j, 9) = ""Sheet1.Cells(j, 10) = ""Sheet1.Cells(j, 11) = ""Sheet1.Cells(j, 12) = ""Sheet1.Cells(j, 13) = ""Sheet1.Cells(j, 14) = ""End IfRows(j).DeleteEnd IfNext'图表数据处理'图表1,饼图,显示各银行资金分布Sheet6.Columns("A:B").ClearSheet6.Cells(1, 1) = "图表1"zong = 0ben = 0nianli = 0For K = 3 To rnrn1 = Sheet6.Range("a65536").End(xlUp).RowIf rn1 < 2 Thenrn1 = 2End Ifflag = 0For k1 = 3 To rn1If Sheet1.Cells(K, 1) = Sheet6.Cells(k1, 1) Thenflag = flag + 1Sheet6.Cells(k1, 2) = Sheet6.Cells(k1, 2) + Sheet1.Cells(K, 12)End IfNextIf flag = 0 ThenSheet6.Cells(rn1 + 1, 1) = Sheet1.Cells(K, 1)Sheet6.Cells(rn1 + 1, 2) = Sheet1.Cells(K, 12)End Ifzong = zong + Sheet1.Cells(K, 12)ben = ben + Sheet1.Cells(K, 2)nianli = nianli + (Sheet1.Cells(K, 13)/ (Sheet1.Cells(K, 5) + Sheet1.Cells(K, 5)* Sheet1.Cells(K, 10))) * 12NextSheet1.Cells(1, 15) = "银行总额:" & Format(zong, "#,##0.0")Sheet1.Cells(2, 15) = Application.Text(Format(zong, "###0"), "[DBNum2]") '大写Sheet1.Cells(3, 15) = "本金:" & Application.Text(Format(ben, "###0"), "[DBNum2]") '大写Sheet1.Cells(4, 15) = "年收益:" & Application.Text(Format(nianli, "###0"), "[DBNum1]") & "[" & Format(nianli, "###0")& "]" '大写'图表设置r = ActiveCell.Rowc = ActiveCell.Column'Range("A1:C" & 5 & ", E1:G" & 5 & "")等价于Range("A1:C5, E1:G5")rn1 = Sheet6.Range("a65536").End(xlUp).RowIf rn1 >= 2 ThenActiveSheet.ChartObjects("图表1").ActivateActiveChart.SetSourceDataSource:=Sheet6.Range("A2:A" & rn1 & ", B2:B" & rn1 & "")Sheet1.Cells(r, c).Select'设置绘图区格式With Sheets(1).ChartObjects("图表 1") .Name.Left.Top.Height = 250.Width.Chart.ChartTypeEnd WithEnd IfWith Range("O3", "O4").HorizontalAlignment = xlRight.VerticalAlignment = xlCenter.WrapText = False.Orientation = 0.AddIndent = False.IndentLevel = 0.ShrinkToFit = False.ReadingOrder = xlContext.MergeCells = FalseEnd WithWith Range("O3").Font.Color = -16751104.TintAndShade = 0End WithWith Range("O4").Font.Color = -3368704.TintAndShade = 0End WithRange("O3", "O4").Font.Size = 9 End Sub界面“收支记录”“收支记录”中复制代码如下:Dim riDim r(0 To 1)Dim r1(0 To 1)Dim r2(0 To 1)Dim r3(0 To 1)Dim r10(0 To 1)Dim r11(0 To 1)Dim r12(0 To 1)Dim r13(0 To 1)Dim kongDim kong1Dim kong2Dim kong10Dim kong11Dim kong12Dim flag_shanDim flag_shan10Private Sub Calendar1_Click()ActiveCell = Calendar1Calendar1.Visible = FalseEnd SubPrivate SubWorksheet_SelectionChange(ByVal Target As Range)ri = ri + 1 'ri定义为鼠标点击次数rik = ri Mod 2 'rik为0或1rns = Range("B65536").End(xlUp).Row '收入最大行号rnz = Range("L65536").End(xlUp).Row '支出最大行号If rns >= rnz Thenrn = rnsElsern = rnzEnd Ifcns = Range("B2").End(xlToRight).Column '最大列号cnz = Range("L2").End(xlToRight).Column '最大列号'格式初始化With Range(Sheet2.Cells(3, 1),Sheet2.Cells(rn + 10, cnz)).Interior.Pattern = xlNone.TintAndShade = 0.PatternTintAndShade = 0End With'---------------With Sheet2.Range("A:N").Validation.Delete.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _:=xlBetween.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'收入项目列表更新rn7s =Sheet7.Range("A65536").End(xlUp).Rowf = "=收支项目!A2:A" & rn7s & ""With Range("B3").Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'支出项目列表更新rn7z =Sheet7.Range("C65536").End(xlUp).Rowf = "=收支项目!C2:C" & rn7z & ""With Range("L3").Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'收入账户列表更新rn4 =Sheet4.Range("e65536").End(xlUp).Rowf = "=基本信息!E5:E" & rn4 & ""With Range("D3").Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'支出账户列表更新rn4 =Sheet4.Range("e65536").End(xlUp).Rowf = "=基本信息!E5:E" & rn4 & ""With Range("n3").Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithFor Z = 2 To rn'收入项目列表更新rn7s =Sheet7.Range("A65536").End(xlUp).Rowf = "=收支项目!A2:A" & rn7s & ""With Range("B" & Z + 1).Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'支出项目列表更新rn7z =Sheet7.Range("C65536").End(xlUp).Rowf = "=收支项目!C2:C" & rn7z & ""With Range("L" & Z + 1).Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'收入账户列表更新rn4 =Sheet4.Range("e65536").End(xlUp).Rowf = "=基本信息!E5:E" & rn4 & ""With Range("D" & Z + 1).Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd With'支出账户列表更新rn4 =Sheet4.Range("e65536").End(xlUp).Rowf = "=基本信息!E5:E" & rn4 & ""With Range("N" & Z + 1).Validation.Delete.Add Type:=xlValidateList,AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=f.IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".IMEMode = xlIMEModeNoControl.ShowInput = True.ShowError = TrueEnd WithOn Error Resume NextIf Target.Column = 1 And Target.Value <> "日期" And Target.Row > 2 And Target.Row <= rn + 1 ThenCalendar1.Visible = True '日历控件Calendar1.Left = Cells(Target.Row, 1).LeftCalendar1.Top = Cells(Target.Row + 1, 1).TopWith Calendar1 '当前日期.Year = Year(Now).Month = Month(Now).Day = Day(Now)End WithElseIf Target.Column = 11 AndTarget.Value <> "日期" And Target.Row > 2 And Target.Row <= rn + 1 ThenCalendar1.Visible = True '日历控件Calendar1.Left = Cells(Target.Row, 11).LeftCalendar1.Top = Cells(Target.Row + 1, 11).TopWith Calendar1 '当前日期.Year = Year(Now).Month = Month(Now).Day = Day(Now)End WithElseCalendar1.Visible = FalseEnd If'格式If Z Mod 2 = 1 Then '当前行数除以2的余数为1(奇数)If Sheet2.Cells(Z + 1, 1) <> "" Or Sheet2.Cells(Z + 1, 2) <> "" ThenWith Range(Sheet2.Cells(Z+ 1, 1), Sheet2.Cells(Z + 1, cns)).Interior.Pattern = xlSolid.PatternColorIndex =xlAutomatic.Color = 13421823.TintAndShade = 0.PatternTintAndShade= 0End WithEnd If。
【精编推荐】Excel理财收支管理代码Excel收支管理系统程序功能:●银行信息记录a)存款利息计算b)银行总资金汇总c)银行年收益计算●收支记录a)收入项目记录,增加到银行账户b)支出项目记录,选择支出账户c)可对每条记录进行修改,并与账户关联d)收支项目管理,可增加或删除收支项目本程序操作灵活,界面人性化,比如删除“银行记录”金额,可将本条记录信息全部删除(需要确认);收支记录中信息输入完整,自动与银行账户信息关联;可自己添加银行并修改利率。
使用本程序可快速判别存款方式对收益的影响,比如5万存入工商银行:1.整存整取两年,利息44002.整存整取一年,利息3561(两年后取)现在银行利率也有差别,存不同银行收益相差多少也能方便了解。
界面“银行记录”“银行记录”中复制代码如下:PrivateSubCalendar1_Click()ActiveCell=Calendar1Calendar1.Visible=FalseEndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)DimlvDimzhuancun(1To100)Dimlv_huo(1To1000)Dimlv_ding1_3(1To1000)Dimlv_ding1_6(1To1000)Dimlv_ding1_12(1To1000)Dimlv_ding1_24(1To1000)Dimlv_ding1_36(1To1000)Dimlv_ding1_60(1To1000)Dimlv_ding2_12(1To1000)Dimlv_ding2_36(1To1000)Dimlv_ding2_60(1To1000)DimrngAsRangern=Range("b65536").End(xlUp).Row'最大行号cn=Range("b2").End(xlToRight).Column'最大列号Application.ScreenUpdating=False'数据初始化IfSheet1.Cells(ActiveCell.Row,1)=""AndSheet1.Cells(ActiveCell.Row,3)=""AndSheet1 .Cells(ActiveCell.Row,2)<>""ThenSheet1.Cells(ActiveCell.Row,1)="中国银行"EndIfFory=3TornIfSheet1.Cells(y,1)<>""ThenSheet4.Select'查找银行名称Setrng=Sheet4.[B:B].Find(Sheet1.Cells(y,1))'定位银行IfNotrngIsNothingThen'rng.Font.ColorIndex=3'颜色暂不设置Application.GotoReference:=rng.Address(,,xlR1C1)EndIfEndIflv_huo(y)=Sheet4.Cells(ActiveCell.Row+3,ActiveCell.Column+1)lv_ding1_3(y)=Sheet4.Cells(ActiveCell.Row+6,ActiveCell.Column+1) lv_ding1_6(y)=Sheet4.Cells(ActiveCell.Row+7,ActiveCell.Column+1) lv_ding1_12(y)=Sheet4.Cells(ActiveCell.Row+8,ActiveCell.Column+1) lv_ding1_24(y)=Sheet4.Cells(ActiveCell.Row+9,ActiveCell.Column+1) lv_ding1_36(y)=Sheet4.Cells(ActiveCell.Row+10,ActiveCell.Column+1) lv_ding1_60(y)=Sheet4.Cells(ActiveCell.Row+11,ActiveCell.Column+1) lv_ding2_12(y)=Sheet4.Cells(ActiveCell.Row+13,ActiveCell.Column+1) lv_ding2_36(y)=Sheet4.Cells(ActiveCell.Row+14,ActiveCell.Column+1)lv_ding2_60(y)=Sheet4.Cells(ActiveCell.Row+15,ActiveCell.Column+1) '返回sheet“银行项目”Sheet1.SelectNext'--------------'格式初始化WithRange(Sheet1.Cells(3,1),Sheet1.Cells(rn+30,cn)).Interior.Pattern=xlNone.TintAndShade=0.PatternTintAndShade=0EndWith'---------------'取消列表WithSheet1.Range("A:A").Validation.Delete.AddType:=xlValidateInputOnly,AlertStyle:=xlValidAlertStop,Operator_ :=xlBetween.IgnoreBlank=True.InCellDropdown=True.InputTitle="".ErrorTitle="".InputMessage="".ErrorMessage="".IMEMode=xlIMEModeNoControl.ShowInput=True.ShowError=TrueEndWithWithSheet1.Range("C:C").Validation.Delete.AddType:=xlValidateInputOnly,AlertStyle:=xlValidAlertStop,Operator_ :=xlBetween.IgnoreBlank=True.InCellDropdown=True.InputTitle="".ErrorTitle="".InputMessage="".ErrorMessage="".IMEMode=xlIMEModeNoControl.ShowInput=True.ShowError=TrueEndWith'银行列表更新rn4=Sheet4.Range("e65536").End(xlUp).Rowf="=基本信息!E5:E"&rn4&""WithRange("A3").Validation.Delete.AddType:=xlValidateList,AlertStyle:=xlValidAlertStop,Operator:=_ xlBetween,Formula1:=f.IgnoreBlank=True.InCellDropdown=True.InputTitle="".ErrorTitle="".InputMessage="".ErrorMessage="".IMEMode=xlIMEModeNoControl.ShowInput=True.ShowError=TrueEndWith'项目列表WithRange("C3").Validation.Delete.AddType:=xlValidateList,AlertStyle:=xlValidAlertStop,Operator:=_ xlBetween,Formula1:="活期,整存整取,整存零取,零存整取,存本取息,定活两便" .IgnoreBlank=True.InCellDropdown=True.InputTitle="".ErrorTitle="".InputMessage="".ErrorMessage="".IMEMode=xlIMEModeNoControl.ShowInput=True.ShowError=TrueEndWithForZ=3Torn'银行列表更新rn4=Sheet4.Range("e65536").End(xlUp).Rowf="=基本信息!E5:E"&rn4&""WithRange("A"&Z+1).Validation.Delete.AddType:=xlValidateList,AlertStyle:=xlValidAlertStop,Operator:=_ xlBetween,Formula1:=f.IgnoreBlank=True.InCellDropdown=True.InputTitle="".ErrorTitle="".InputMessage="".ErrorMessage="".IMEMode=xlIMEModeNoControl.ShowInput=True.ShowError=TrueEndWith'项目列表WithRange("C"&Z+1).Validation.Delete.AddType:=xlValidateList,AlertStyle:=xlValidAlertStop,Operator:=_ xlBetween,Formula1:="活期,整存整取,整存零取,零存整取,存本取息,定活两便" .IgnoreBlank=True.InCellDropdown=True.InputTitle="".ErrorTitle="".InputMessage="".ErrorMessage="".IMEMode=xlIMEModeNoControl.ShowInput=True.ShowError=TrueEndWith'-----------------------'年利率IfSheet1.Cells(Z,3)="Huo"OrSheet1.Cells(Z,3)="活期"Thenlv=lv_huo(Z)Sheet1.Cells(Z,6)=lvEndIfIfSheet1.Cells(Z,3)="ZZ"OrSheet1.Cells(Z,3)="整存整取"Then IfSheet1.Cells(Z,5)<6Thenlv=lv_ding1_3(Z)'3个月EndIfIfSheet1.Cells(Z,5)>=6AndSheet1.Cells(Z,5)<12Thenlv=lv_ding1_6(Z)'半年EndIfIfSheet1.Cells(Z,5)>=12AndSheet1.Cells(Z,5)<24Thenlv=lv_ding1_12(Z)'1年EndIfIfSheet1.Cells(Z,5)>=24AndSheet1.Cells(Z,5)<36Thenlv=lv_ding1_24(Z)'2年EndIfIfSheet1.Cells(Z,5)>=36AndSheet1.Cells(Z,5)<60Thenlv=lv_ding1_36(Z)'3年EndIfIfSheet1.Cells(Z,5)>=60Thenlv=lv_ding1_60(Z)'5年EndIfSheet1.Cells(Z,6)=lvEndIfIfSheet1.Cells(Z,3)="ZLLZBX"OrSheet1.Cells(Z,3)="零存整取"OrSheet1.Cells(Z,3)="整存零取"OrSheet1.Cells(Z,3)="存本取息"ThenIfSheet1.Cells(Z,5)>=12AndSheet1.Cells(Z,5)<36Thenlv=lv_ding2_12(Z)'1年EndIfIfSheet1.Cells(Z,5)>=36AndSheet1.Cells(Z,5)<60Thenlv=lv_ding2_36(Z)'3年EndIfIfSheet1.Cells(Z,5)>=60Thenlv=lv_ding2_60(Z)'5年EndIfSheet1.Cells(Z,6)=lvEndIfIfSheet1.Cells(Z,3)="定活两便"ThenIfSheet1.Cells(Z,4)=""AndSheet1.Cells(Z,5)=""Thendh=MsgBox("未区分各家银行计算方法,结果不一定准确,按利率60%计算?",vbYesNo,"提示")Ifdh=vbYesThenIfSheet1.Cells(Z,5)<6Thenlv=lv_ding1_3(Z)'3个月EndIfIfSheet1.Cells(Z,5)>=6AndSheet1.Cells(Z,5)<12Then lv=lv_ding1_6(Z)'半年EndIfIfSheet1.Cells(Z,5)>=12AndSheet1.Cells(Z,5)<24Then lv=lv_ding1_12(Z)'1年EndIfIfSheet1.Cells(Z,5)>=24AndSheet1.Cells(Z,5)<36Then lv=lv_ding1_24(Z)'2年EndIfIfSheet1.Cells(Z,5)>=36AndSheet1.Cells(Z,5)<60Then lv=lv_ding1_36(Z)'3年EndIfIfSheet1.Cells(Z,5)>=60Thenlv=lv_ding1_60(Z)'5年EndIflv=lv*0.6ElseSheet1.Cells(Z,3)=""EndIfElseIfSheet1.Cells(Z,5)<6Thenlv=lv_ding1_3(Z)'3个月EndIfIfSheet1.Cells(Z,5)>=6AndSheet1.Cells(Z,5)<12Then lv=lv_ding1_6(Z)'半年EndIfIfSheet1.Cells(Z,5)>=12AndSheet1.Cells(Z,5)<24Then lv=lv_ding1_12(Z)'1年EndIfIfSheet1.Cells(Z,5)>=24AndSheet1.Cells(Z,5)<36Then lv=lv_ding1_24(Z)'2年EndIfIfSheet1.Cells(Z,5)>=36AndSheet1.Cells(Z,5)<60Then lv=lv_ding1_36(Z)'3年EndIfIfSheet1.Cells(Z,5)>=60Thenlv=lv_ding1_60(Z)'5年EndIflv=lv*0.6EndIfSheet1.Cells(Z,6)=lvEndIf'------------------------------------------- OnErrorResumeNextIfTarget.Column=4AndT arget.Value<>"存入日期"AndTarget.Row>2AndTarget.Row<=rnThenCalendar1.Visible=True'日历控件Calendar1.Left=Cells(T arget.Row,4).LeftCalendar1.T op=Cells(T arget.Row+1,4).T opWithCalendar1'当前日期.Year=Year(Now).Month=Month(Now).Day=Day(Now)EndWithElseIfT arget.Column=1AndTarget.Row=1ThenCalendar1.Visible=True'日历控件Calendar1.Left=Cells(T arget.Row,1).LeftCalendar1.T op=Cells(T arget.Row+1,1).T opWithCalendar1'当前日期.Year=Year(Now).Month=Month(Now).Day=Day(Now)EndWithElseCalendar1.Visible=FalseEndIfOnErrorResumeNextnian=Int(Sheet1.Cells(Z,5)/12)'年数yue=Sheet1.Cells(Z,5)-12*nian'月数lixishui=0'利息税率daoqi=Sheet1.Cells(Z,2)+Sheet1.Cells(Z,2)*(lv/100)*(Sheet1.Cells(Z,5)/12)*(1-lixishu i)'到期总数'当前日期与存入日期相差月数IfYear(Sheet1.Cells(1,1))>=Year(Sheet1.Cells(Z,4))AndMonth(Sheet1.Cells(1,1))>=M onth(Sheet1.Cells(Z,4))AndDay(Sheet1.Cells(1,1))>=Day(Sheet1.Cells(Z,4))Thenm=(Year(Sheet1.Cells(1,1))-Year(Sheet1.Cells(Z,4)))*12+Month(Sheet1.Cells(1,1))-M onth(Sheet1.Cells(Z,4))EndIfIfYear(Sheet1.Cells(1,1))>=Year(Sheet1.Cells(Z,4))AndMonth(Sheet1.Cells(1,1))>=M onth(Sheet1.Cells(Z,4))AndDay(Sheet1.Cells(1,1))<Day(Sheet1.Cells(Z,4))Thenm=(Year(Sheet1.Cells(1,1))-Year(Sheet1.Cells(Z,4)))*12+Month(Sheet1.Cells(1,1))-M onth(Sheet1.Cells(Z,4))-1EndIfIfYear(Sheet1.Cells(1,1))>=Year(Sheet1.Cells(Z,4))AndMonth(Sheet1.Cells(1,1))<Mo nth(Sheet1.Cells(Z,4))AndDay(Sheet1.Cells(1,1))>=Day(Sheet1.Cells(Z,4))Thenm=(Year(Sheet1.Cells(1,1))-Year(Sheet1.Cells(Z,4)))*12-Month(Sheet1.Cells(1,1))+M onth(Sheet1.Cells(Z,4))EndIfIfYear(Sheet1.Cells(1,1))>=Year(Sheet1.Cells(Z,4))AndMonth(Sheet1.Cells(1,1))<Mo nth(Sheet1.Cells(Z,4))AndDay(Sheet1.Cells(1,1))>=Day(Sheet1.Cells(Z,4))Thenm=(Year(Sheet1.Cells(1,1))-Year(Sheet1.Cells(Z,4)))*12-Month(Sheet1.Cells(1,1))+M onth(Sheet1.Cells(Z,4))-1EndIfIfYear(Sheet1.Cells(1,1))<Year(Sheet1.Cells(Z,4))Thenm=0EndIfIfYear(Sheet1.Cells(1,1))=Year(Sheet1.Cells(Z,4))AndMonth(Sheet1.Cells(1,1))<Mont h(Sheet1.Cells(Z,4))Thenm=0EndIfIfYear(Sheet1.Cells(1,1))=Year(Sheet1.Cells(Z,4))AndMonth(Sheet1.Cells(1,1))=Mont h(Sheet1.Cells(Z,4))AndDay(Sheet1.Cells(1,1))<Day(Sheet1.Cells(Z,4))Thenm=0EndIf'----------------------------zhuan=Int(m/Sheet1.Cells(Z,5))-1'转存次数Ifzhuan<0Thenzhuan=0EndIf'数据写入IfZ>2AndSheet1.Cells(Z,6)<>""ThenSheet1.Cells(Z,7)=daoqi'---到期总数IfSheet1.Cells(Z,4)<>""ThenSheet1.Cells(Z,8).FormulaR1C1=_"=DATE(YEAR(RC[-4]),MONTH(RC[-4])+RC[-3],DAY(RC[-4]))"'---到期日期EndIfEndIfIfSheet1.Cells(Z,7)<>""ThenSheet1.Cells(Z,9)=(Sheet1.Cells(Z,7)-Sheet1.Cells(Z,2))'---利息ElseSheet1.Cells(Z,9)=""EndIfSheet1.Cells(Z,10)=zhuan'---转存次数zhuancun(1)=Sheet1.Cells(Z,7)+Sheet1.Cells(Z,7)*(lv/100)*(Sheet1.Cells(Z,5)/12)*(1 -lixishui)'第一次转存到期总数Ifzhuan>=2ThenFori=2Tozhuanzhuancun(i)=zhuancun(i-1)+zhuancun(i-1)*(lv/100)*(Sheet1.Cells(Z,5)/12)*(1-lixish ui)NextEndIfIfInt(m/Sheet1.Cells(Z,5))=m/Sheet1.Cells(Z,5)ThenSheet1.Cells(Z,11).FormulaR1C1=_"=DATE(YEAR(RC[-7]),MONTH(RC[-7])+RC[-6]*(RC[-1]+1),DAY(RC[-7]))"'---转存到期日期ElseSheet1.Cells(Z,11).FormulaR1C1=_"=DATE(YEAR(RC[-7]),MONTH(RC[-7])+RC[-6]*(RC[-1]+1),DAY(RC[-7]))"'---转存到期日期EndIfIfzhuan<1ThenSheet1.Cells(Z,10)=""Sheet1.Cells(Z,11)=""Sheet1.Cells(Z,12)=Sheet1.Cells(Z,7)Sheet1.Cells(Z,13)=Sheet1.Cells(Z,9)ElseSheet1.Cells(Z,12)=zhuancun(zhuan)'---当前总额Sheet1.Cells(Z,13)=Sheet1.Cells(Z,12)-Sheet1.Cells(Z,2)'---当前利息EndIf'-------------------------------------'格式IfZMod2=1Then'当前行数除以2的余数为1(奇数)WithRange(Sheet1.Cells(Z,1),Sheet1.Cells(Z,14)).Interior.Pattern=xlSolid.PatternColorIndex=xlAutomatic.Color=10198015.TintAndShade=0.PatternTintAndShade=0EndWithElseIfZMod2=0Then'当前行数除以2的余数为0(偶数)WithRange(Sheet1.Cells(Z,1),Sheet1.Cells(Z,14)).Interior .Pattern=xlSolid.PatternColorIndex=xlAutomatic.Color=13421823.TintAndShade=0.PatternTintAndShade=0EndWithEndIf'---------------------------------------'未选择银行不计利率IfSheet1.Cells(Z,1)=""Thenlv=0Sheet1.Cells(Z,6)=""Sheet1.Cells(Z,7)=""Sheet1.Cells(Z,9)=""EndIf'活期不考虑到期时间,按存入时间到当前日期利息计算IfSheet1.Cells(Z,3)="活期"Thentian=Date-Sheet1.Cells(Z,4)nian1=Int(tian/365)'年数yue1=Sheet1.Cells(Z,5)-12*nian'月数Sheet1.Cells(Z,7)=Sheet1.Cells(Z,2)+Sheet1.Cells(Z,2)*lv/100*(tian/365) Sheet1.Cells(Z,9)=Sheet1.Cells(Z,7)-Sheet1.Cells(Z,2)Sheet1.Cells(Z,5)=""Sheet1.Cells(Z,6)=lvSheet1.Cells(Z,8)=""Sheet1.Cells(Z,10)=""Sheet1.Cells(Z,11)=""Sheet1.Cells(Z,12)=Sheet1.Cells(Z,7)Sheet1.Cells(Z,13)=Sheet1.Cells(Z,9)EndIf'未选择存入时间IfSheet1.Cells(Z,4)=""ThenSheet1.Cells(Z,9)=""Sheet1.Cells(Z,10)=""Sheet1.Cells(Z,11)=""Sheet1.Cells(Z,13)=""Sheet1.Cells(Z,7)=Sheet1.Cells(Z,2)Sheet1.Cells(Z,12)=Sheet1.Cells(Z,2) EndIf'到期提示IfSheet1.Cells(Z,8)<Sheet1.Cells(1,1)Then WithSheet1.Cells(Z,8).Font.Color=-65281.TintAndShade=0EndWithElseWithSheet1.Cells(Z,8).Font.ThemeColor=xlThemeColorLight1.TintAndShade=0EndWithEndIfIfSheet1.Cells(Z,11)<Sheet1.Cells(1,1)Then WithSheet1.Cells(Z,11).Font.Color=-65281.TintAndShade=0EndWithElseWithSheet1.Cells(Z,11).Font.ThemeColor=xlThemeColorLight1.TintAndShade=0EndWithEndIfNext'------------------------------------------------------------------ Forj=3Torn+1000IfSheet1.Cells(j,2)=""AndSheet1.Cells(j,3)<>""Thensc=MsgBox("确认删除该项目?",vbYesNo,"提示")Ifsc=vbYesThenSheet1.Cells(j,1)=""Sheet1.Cells(j,3)=""Sheet1.Cells(j,4)=""Sheet1.Cells(j,5)=""Sheet1.Cells(j,6)=""Sheet1.Cells(j,7)=""Sheet1.Cells(j,8)=""Sheet1.Cells(j,9)=""Sheet1.Cells(j,10)=""Sheet1.Cells(j,11)=""Sheet1.Cells(j,12)=""Sheet1.Cells(j,13)=""Sheet1.Cells(j,14)=""Rows(j).DeleteEndIfNext'图表数据处理'图表1,饼图,显示各银行资金分布Sheet6.Columns("A:B").ClearSheet6.Cells(1,1)="图表1"zong=0ben=0nianli=0ForK=3Tornrn1=Sheet6.Range("a65536").End(xlUp).RowIfrn1<2Thenrn1=2EndIfflag=0Fork1=3Torn1IfSheet1.Cells(K,1)=Sheet6.Cells(k1,1)Thenflag=flag+1Sheet6.Cells(k1,2)=Sheet6.Cells(k1,2)+Sheet1.Cells(K,12) EndIfIfflag=0ThenSheet6.Cells(rn1+1,1)=Sheet1.Cells(K,1)Sheet6.Cells(rn1+1,2)=Sheet1.Cells(K,12)EndIfzong=zong+Sheet1.Cells(K,12)ben=ben+Sheet1.Cells(K,2)nianli=nianli+(Sheet1.Cells(K,13)/(Sheet1.Cells(K,5)+Sheet1.Cells(K,5)*Sheet1.Cells( K,10)))*12NextSheet1.Cells(1,15)="银行总额:"&Format(zong,"#,##0.0")Sheet1.Cells(2,15)=Application.Text(Format(zong,"###0"),"[DBNum2]")'大写Sheet1.Cells(3,15)="本金:"&Application.T ext(Format(ben,"###0"),"[DBNum2]")'大写Sheet1.Cells(4,15)="年收益:"&Application.T ext(Format(nianli,"###0"),"[DBNum1]")&"["&Format(nianli,"###0") &"]"'大写'图表设置r=ActiveCell.Rowc=ActiveCell.Column'Range("A1:C"&5&",E1:G"&5&"")等价于Range("A1:C5,E1:G5")rn1=Sheet6.Range("a65536").End(xlUp).RowIfrn1>=2ThenActiveSheet.ChartObjects("图表1").ActivateActiveChart.SetSourceDataSource:=Sheet6.Range("A2:A"&rn1&",B2:B"&rn1&"") Sheet1.Cells(r,c).Select'设置绘图区格式WithSheets(1).ChartObjects("图表1").Name.Left.T op.Height=250.Width.Chart.ChartTypeEndWithEndIfWithRange("O3","O4").HorizontalAlignment=xlRight.VerticalAlignment=xlCenter.WrapT ext=False.Orientation=0.AddIndent=False.IndentLevel=0.ShrinkToFit=False.ReadingOrder=xlContext.MergeCells=FalseEndWithWithRange("O3").Font.Color=-16751104.TintAndShade=0EndWithWithRange("O4").Font.Color=-3368704.TintAndShade=0EndWithRange("O3","O4").Font.Size=9 EndSub界面“收支记录”“收支记录”中复制代码如下:DimriDimr(0To1)Dimr1(0To1)Dimr2(0To1)Dimr3(0To1)Dimr10(0To1)Dimr11(0To1)Dimr12(0To1)Dimr13(0To1)DimkongDimkong1Dimkong2Dimkong10Dimkong11Dimkong12Dimflag_shanDimflag_shan10 PrivateSubCalendar1_Click() ActiveCell=Calendar1 Calendar1.Visible=False。