【发布时间】:2021-10-17 14:11:02
【问题描述】:
我有一个 Excel 表格,其中包含交易(金额输入和金额输出)。我需要一个宏来计算期末余额。你能指导我吗?
这个宏我试过了,但是报错
Private Sub cmdAdd_Click()
Dim oNewRow As ListRow, rng As Range
Set rng = Sheets("Bank Sheet").Range("Table2")
Set oNewRow = Sheets("BankSheet").Range("Table2").ListObject.ListRows.Add(AlwaysInsert:=True)
With rng
oNewRow.Range.Cells(1, 5) = TxtBoxBkAmount.Value
oNewRow.Range.Cells(1, 6) = TxtBoxBkAmount.Value
'Calculate the Balance
If oNewRow.Row = 11 Then
oNewRow.Range.Cells(1, 7).FormulaR1C1 = "=R[-3]C+([@[Amount In]]-[@[Amount Out]])"
Else
oNewRow.Range.Cells(1, 7).FormulaR1C1 = "=R[-3]C+([@[Amount In]]-[@[Amount Out]])"
End IfEnd With
End Sub
我正在使用这个宏来删除表中的行: 暗淡 ws 作为工作表,表格作为 ListObject 设置 ws = Sheets("银行表") 设置表 = ws.ListObjects("Table2") 如果 Table.ListRows.Count > 2 那么 表.DataBodyRange.Delete 结束如果
【问题讨论】:
-
你得到了什么错误,在哪一行?
-
为什么需要宏?单元格 G11 "=G88+E11-F11。然后 G12 "=G11+E12-F12" 等等。
-
我得到的错误是:运行时错误'438'(对象不支持此属性或方法)。我想使用宏而不是工作表的公式,因为表格将被清除和重用。当使用宏清除数据范围时,公式也被删除!同样在清除数据范围并进入新事务后,它会跳转到Table2的第1行。