Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel函数-Can';I don’我想不出所需的方程式_Excel_Vba_Math - Fatal编程技术网

Excel函数-Can';I don’我想不出所需的方程式

Excel函数-Can';I don’我想不出所需的方程式,excel,vba,math,Excel,Vba,Math,我正在使用循环计算每年增加15%后的期末租金。 这个很好用 Private Sub Worksheet_Change(ByVal Target As range) On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back Select Case Target.Address Case "$F$15" '

我正在使用循环计算每年增加15%后的期末租金。 这个很好用

    Private Sub Worksheet_Change(ByVal Target As range)
    On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
    Select Case Target.Address

        Case "$F$15"
           'Recalculate as necessary Using Looping
          amount = range("F12").Value
          For counter = 1 To range("F15").Value
             Debug.Print counter;

             amount = amount + (range("F12").Value * 0.15)
           Next
           range("F16").Value = amount
Private子工作表\u更改(ByVal目标作为范围)

关于Error GoTo ErrorHandler',我已经使用循环方法和非循环方法重构了您的代码:

Private Sub Worksheet_Change(ByVal Target As range)
    On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
    Dim factor As Double
    Dim period As Integer
    Dim amount As Double
    Select Case Target.Address

        Case "$F$15"
            period = Range("F15").Value
            amount = Range("F12").Value

            'Recalculate as necessary Using Looping
            factor = 1
            For counter = 1 To period
                Debug.Print counter;
                factor = factor + 0.15
            Next
            Range("F16").Value = amount * factor

            'alternate method without looping
            Range("F16").Value = amount * (1 + period * 0.15)
            'which can also be written in VBA as
            [F16] = [F12] * (1 + [F15] * 0.15)

        Case "$F$21"
            period = Range("F21").Value
            amount = Range("F19").Value

            'Recalculate as necessary Using Looping
            factor = 1
            For counter = 1 To period
                factor = factor + 0.15
            Next
            Range("F20").Value = amount / factor

            'alternate method without looping
            Range("F20").Value = amount / (1 + period * 0.15)
            'which can also be written in VBA as
            [F20] = [F19] / (1 + [F21] * 0.15)
Private子工作表\u更改(ByVal目标作为范围)

关于Error GoTo ErrorHandler',我已经使用循环方法和非循环方法重构了您的代码:

Private Sub Worksheet_Change(ByVal Target As range)
    On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
    Dim factor As Double
    Dim period As Integer
    Dim amount As Double
    Select Case Target.Address

        Case "$F$15"
            period = Range("F15").Value
            amount = Range("F12").Value

            'Recalculate as necessary Using Looping
            factor = 1
            For counter = 1 To period
                Debug.Print counter;
                factor = factor + 0.15
            Next
            Range("F16").Value = amount * factor

            'alternate method without looping
            Range("F16").Value = amount * (1 + period * 0.15)
            'which can also be written in VBA as
            [F16] = [F12] * (1 + [F15] * 0.15)

        Case "$F$21"
            period = Range("F21").Value
            amount = Range("F19").Value

            'Recalculate as necessary Using Looping
            factor = 1
            For counter = 1 To period
                factor = factor + 0.15
            Next
            Range("F20").Value = amount / factor

            'alternate method without looping
            Range("F20").Value = amount / (1 + period * 0.15)
            'which can also be written in VBA as
            [F20] = [F19] / (1 + [F21] * 0.15)
Private子工作表\u更改(ByVal目标作为范围)

关于Error GoTo ErrorHandler“我只是想澄清一下,在我看来,你并没有将15%的增长复合起来。如果是两年,你加30%。三年内你增加45%。对吗?这就是你想要的吗?从你的代码来看,你基本上是在做
结束租金=开始租金*(1年以上*费率)
。要获得起始租金,只需使用“起始租金=终止租金/(1+年*费率)`
F16=F12*(1+F15*0.15)
F20=F19/(1+F21*0.15)
然而,由于租金每年都要增加,你应该将上一年的租金增加15%,即
amount=amount+(amount*0.15)
for循环在计算最终租金(F16)方面运行良好。我希望是单利而不是复利。我明天会看看夜行爬虫“结束租金=开始租金*(1+年*费率)”是否给出了相同的答案。(这似乎是我不需要for循环来完成这项工作。然后我将尝试“F20=F19/(1+F21*0.15)”如果我不知道F20,这就是我想知道的。我的数学技能很粗略,这就是为什么我开始使用循环的原因。谢谢。明天需要这样做。只是要明确一点,在我看来,你并没有把15%的增长加起来。如果是2年,你加30%。3年,你加45%。这是正确的吗?你是这么认为的吗想要?从你的代码中,你基本上是在做
end\u rent=start\u rent*(1+年*费率)
。要获得起始租金,只需使用`start\u rent=end\u rent/(1+年*费率)`
F16=F12*(1+F15*0.15)
F20=F19/(1+F21*0.15)
然而,由于租金每年都要增加,你应该将过去几年的租金增加15%,即
金额=金额+(金额*0.15)
我的for循环在计算期末租金(F16)时运行良好。我希望它是单利而不是复利。我将在明天查看夜行侠“结束租金=开始租金*(1+years*rate)”给出了相同的答案。(这似乎是我不需要for循环来完成这项工作。然后我将尝试“F20=F19/(1+F21*0.15)”“如果我不知道F20,这就是我想要弄清楚的。我的数学技能很粗略,这就是为什么我开始使用循环。谢谢。明天需要这样做。”。