ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 求助,这些公式如何用VBA事件代码自动实现?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-10-7 20:42 | 显示全部楼层 |阅读模式
本帖最后由 小年玩卡 于 2018-10-8 11:35 编辑

触发事件的是A,B列,其他为自动计算
如何把这些公式用代码实现呢?

TIM截图20181007203929.png
模板2.rar (23.8 KB, 下载次数: 6)

补充问题:求助
现在是增加了一列,比如登记了A2和b2数据使用e2的结果,如果是登记A3和c3数据就使用e3结果,
TIM截图20181008112147.png
固定还款日.rar (25.83 KB, 下载次数: 4)

TA的精华主题

TA的得分主题

发表于 2018-10-7 21:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-10-7 21:23 | 显示全部楼层
Sub caculatebank()
Dim i%, arr
arr = Sheets("sheet1").Range("a1:e7")
For i = 2 To UBound(arr)
   If Day(Date) < arr(i, 1) Then
   arr(i, 3) = Month(Date) - 1 & "月" & arr(i, 1) & "日"
   arr(i, 4) = DateValue(arr(i, 3)) + arr(i, 2)
   Else
   arr(i, 3) = Month(Date) & "月" & arr(i, 1) & "日"
   arr(i, 4) = DateValue(arr(i, 3)) + arr(i, 2)
   End If
   If arr(i, 4) < Date Then
   arr(i, 5) = "--"
   ElseIf arr(i, 4) = Date Then
   arr(i, 5) = "今天还"
   ElseIf arr(i, 4) > Date Then
   arr(i, 5) = arr(i, 4) - Date & "天"
   End If
Next
Sheets("sheet1").Range("a1:e7") = arr
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-10-7 22:23 | 显示全部楼层
hdbk 发表于 2018-10-7 21:23
Sub caculatebank()
Dim i%, arr
arr = Sheets("sheet1").Range("a1:e7")

感谢,基本是这个效果
再咨询下
第一,这个能否通过事件触犯即时计算,这个只是了解下
第二,上面那个辅助列中的公式能代码实现吗?
第三,代码中能否添加这样功能:因为您这个代码必须是数字都填上了才可以,能否填了几行就计算几行的,不需要设定的每行都要填写呢?
希望能解答下,非常感谢

TA的精华主题

TA的得分主题

发表于 2018-10-7 23:17 | 显示全部楼层
小年玩卡 发表于 2018-10-7 22:23
感谢,基本是这个效果
再咨询下
第一,这个能否通过事件触犯即时计算,这个只是了解下

代码如下:

Sub calbank()
Dim i%, arr
arr = Sheets("sheet1").Range("a1").CurrentRegion
For i = 2 To UBound(arr)
  If arr(i, 1) <> "" And arr(i, 2) <> "" Then
    If Day(Date) < arr(i, 1) Then
   arr(i, 3) = Month(Date) - 1 & "&#65428;&#65410;" & arr(i, 1) & "&#65416;&#65429;"
   arr(i, 4) = DateValue(arr(i, 3)) + arr(i, 2)
   Else
   arr(i, 3) = Month(Date) & "&#65428;&#65410;" & arr(i, 1) & "&#65416;&#65429;"
   arr(i, 4) = DateValue(arr(i, 3)) + arr(i, 2)
   End If
   If arr(i, 4) < Date Then
   arr(i, 5) = "--"
   arr(i, 6) = "--"
   ElseIf arr(i, 4) = Date Then
   arr(i, 5) = "&#65405;&#12539;&#65401;"
   arr(i, 6) = arr(i, 4) - Date
   ElseIf arr(i, 4) > Date Then
   arr(i, 5) = arr(i, 4) - Date & "&#65420;&#12539;
   arr(i, 6) = arr(i, 4) - Date
   End If
End If
Next
Sheets("sheet1").Range("a1").Resize(UBound(arr), 6) = arr
End Sub

TA的精华主题

TA的得分主题

发表于 2018-10-7 23:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在A列和B列你需要的地方输入账单日和免息期,后面会自动计算。

银行计算.zip

22 Bytes, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-10-8 09:10 | 显示全部楼层
hdbk 发表于 2018-10-7 23:19
在A列和B列你需要的地方输入账单日和免息期,后面会自动计算。

这个附件解压提示没有东西

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-10-8 09:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hdbk 发表于 2018-10-7 23:17
代码如下:

Sub calbank()

谢谢,您好,这个代码提示类型不匹配是什么情况

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-10-8 09:54 | 显示全部楼层
hdbk 发表于 2018-10-7 23:17
代码如下:

Sub calbank()

哦,我改回来了,可以用了 感谢

TA的精华主题

TA的得分主题

发表于 2018-10-8 10:36 | 显示全部楼层
本帖最后由 hdbk 于 2018-10-8 10:43 编辑
小年玩卡 发表于 2018-10-8 09:10
这个附件解压提示没有东西
你再看看。
bank.7z (14.01 KB, 下载次数: 6)



您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 16:52 , Processed in 0.026513 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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