Just a thought. Instead of writing code, why not just use the table on Sheet Lines and put a Amount column as shown below and employ the subtotal function native to Excel.
[table="class:thin_grid"]
[tr][td]v[/td]
[td="bgcolor:#ECF0F0, align:center"]A[/td]
[td="bgcolor:#ECF0F0, align:center"]B[/td]
[td="bgcolor:#ECF0F0, align:center"]C[/td]
[td="bgcolor:#ECF0F0, align:center"]D[/td]
[td="bgcolor:#ECF0F0, align:center"]E[/td]
[/tr][tr][td="bgcolor:#ECF0F0, align:center"]1[/td]
[td="bgcolor:#D9D9D9, align:CENTER"]Section[/td]
[td="bgcolor:#D9D9D9, align:CENTER"]Decsription[/td]
[td="bgcolor:#D9D9D9, align:CENTER"]Quantity[/td]
[td="bgcolor:#D9D9D9, align:CENTER"]Unit Price[/td]
[td="bgcolor:#D9D9D9, align:CENTER"]Amount[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]2[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]A[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Paper[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]10[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]1.5[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]15[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]3[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]A[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Box[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]10[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]2[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]20[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]4[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]A[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Pen[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]10[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]3.5[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]35[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]5[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]A[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Pencil[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]10[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]4[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]40[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]6[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]A[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Eraser[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]10[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]6.5[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]65[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]7[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]A Total[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]50[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]175[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]8[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]B[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Desktop[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]1[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]8[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]8[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]9[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]B[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Screen[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]2[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]1[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]2[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]10[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]B[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Table[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]3[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]5[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]15[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]11[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]B Total[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]6[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]25[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]12[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]C[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Chair[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]100[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]1.2[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]120[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]13[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]C[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Glass[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]200[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]2.5[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]500[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]14[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]C[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Cup[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]300[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]45.58[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]13674[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]15[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]C[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Book[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]400[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]50.85[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]20340[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]16[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]C Total[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]1000[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]34634[/td]
[/tr]
[tr][td="bgcolor:#ECF0F0, align:center"]17[/td]
[td="bgcolor:#FFFFFF, align:CENTER"]Grand Total[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]1056[/td]
[td="bgcolor:#FFFFFF, align:CENTER"][/td]
[td="bgcolor:#FFFFFF, align:CENTER"]34834[/td]
[/tr]
[/table]