Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Vba 如何检查单元格值以更改另一个单元格的值?_Vba_Excel_Amortization - Fatal编程技术网

Vba 如何检查单元格值以更改另一个单元格的值?

Vba 如何检查单元格值以更改另一个单元格的值?,vba,excel,amortization,Vba,Excel,Amortization,我在做一个贷款分期偿还项目 贷款在一段时间内摊销。比如说20年,有239条付款线 通过if公式自动生成的最后一行需要一些对账 只要最后一次计划付款少于实际付款6309,则计划付款应等于2711+4 我一直在尝试编辑此代码 Private子命令按钮23_单击() 尺寸r1、r2、n与长度相同 Dim Pay_Num为整数,结果为字符串 Pay_Num=范围(“D34”)。值 带工作表(“贷款和进度表”)~~~>根据需要更改 暗淡的光线和长的一样 付款数量=范围(“G20”)。价值 lrow=.

我在做一个贷款分期偿还项目

贷款在一段时间内摊销。比如说20年,有239条付款线

通过if公式自动生成的最后一行需要一些对账

只要最后一次计划付款少于实际付款6309,则计划付款应等于2711+4

我一直在尝试编辑此代码

Private子命令按钮23_单击()
尺寸r1、r2、n与长度相同
Dim Pay_Num为整数,结果为字符串
Pay_Num=范围(“D34”)。值
带工作表(“贷款和进度表”)~~~>根据需要更改
暗淡的光线和长的一样
付款数量=范围(“G20”)。价值
lrow=.Range(“A”&.Rows.Count).End(xlUp).Row
r1=应用程序.转置(.Range(“A2:A”和lrow))
r2=应用程序.转置(.Range(“J2:J”和lrow))
对于n=LBound(r1)到UBound(r1)
如果r1(n)“,则r2(n)=r1(n)
如果r1(n)=付款数量,则Sched_Pay=付款数量
范围(“D35”)。值=计划付款
下一个
.Range(“J2:J”&lrow)=应用程序转置(r2)
以
端接头

根据您的示例,假设最后一行始终包含您的上次付款,您只需快速检查值并填写最终付款金额:

Option Explicit

Sub Example1()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim begBalColumn As Long
    Dim schedPayColumn As Long
    Dim interestColumn As Long
    Dim endBalColumn As Long

    '--- you can automatically set these values if needed
    begBalColumn = 3
    schedPayColumn = 4
    interestColumn = 6
    endBalColumn = 7

    '--- assumes the last row has your last payment
    Set ws = ActiveSheet
    lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

    With ws
        If .Cells(lastRow, begBalColumn).Value < _
               .Cells(lastRow - 1, schedPayColumn).Value Then
            .Cells(lastRow, schedPayColumn).Value = .Cells(lastRow, begBalColumn).Value + _
                                                    .Cells(lastRow, interestColumn).Value
        End If
    End With
End Sub
=IF(C5<D4,C5+F5,D4)