【发布时间】:2015-11-21 06:34:14
【问题描述】:
我要创建的是一个预算电子表格,可以将值输入到每日、每周、每月或每年列的一个单元格中,并且它将跨行计算其他列的值。
A B C D E
1 CATEGORY DAILY BUDGET WEEKLY BUDGET MONTHLY BUDGET YEARLY BUDGET
2 Restaurants $1.43 *$10.00* $43.45 $521.43
3 Fuel $3.29 $23.01 *$100.00* $1,200.00
4 Daily coffee *$1.65* $11.55 $50.19 $602.25
5 Auto Insurance $3.29 $23.01 $100.00 *$1,200.00*
如下所示,星号表示输入一阶值的位置。例如,在每周预算列中输入的 10 美元会计算其他三列的值,以此类推,对于在每个不同列中输入一阶值的其余行。
我知道它涉及到一些 Excel VBA。事实上,Yahoo Answers 上的这个答案非常接近我想要做的,除了我需要它来处理活动单元格相应行中的列。
编辑:添加了对我的表的列和行引用,这是我修改过的代码:
Private Sub PeriodConversion(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$2" Then
[C2] = [B2] * 7
[E2] = [B2] * 365
[D2] = [E2] / 12
ElseIf Target.Address = "$C$2" Then
[B2] = [C2] / 7
[E2] = [B2] * 365
[D2] = [E2] / 12
ElseIf Target.Address = "$D$2" Then
[E2] = [D2] * 12
[B2] = [E2] / 365
[C2] = [B2] * 7
ElseIf Target.Address = "$E$2" Then
[D2] = [E2] / 12
[B2] = [E2] / 365
[C2] = [B2] * 7
End If
Application.EnableEvents = True
End Sub
虽然它似乎不起作用.. :\
【问题讨论】:
-
谁每天花的咖啡多于食物(餐厅)?
-
这一切都需要在同一个表中。可能吗?我可能不知道你说的分开是什么意思..和@findwindow,整个想法是按比例分配..您实际上每周只会去餐厅一次(如果是快餐,则去两次),因此为什么会这样在每周预算间隔下输入。
-
@CalvinBroadus 大声笑我是在拖钓,因为你没有表现出任何努力 XD 但 pnuts 似乎很乐意提供帮助 ^_^
-
使用@pnuts 方法,您还需要一个触发器来知道哪个是
first order期间(或者可能是一个查找表,上面写着咖啡= 每天,餐厅= 每周)。如果您以正确的方式设置电子表格,这是一个不错的非 vba 解决方案。 -
触发器可以是具有输入值的活动单元格吗?我正在处理的代码是发布在 Yahoo Answers 上的代码。抱歉,说到 VBA,我几乎是个新手。