【发布时间】:2018-04-13 21:46:56
【问题描述】:
我正在尝试创建编号变量(即 suminterest_X,其中“X”从 1 变为 20 并生成 20 个不同的变量,循环中的每个进程一个)。
我的代码目前是:
让suminterest_& CStr(i) = Excel.WorksheetFunction.Sum(Range(Worksheets("Bond_" & CStr(i)).Cells(8, 5), Worksheets("Bond_" & CStr(i)).Cells(7 + wam1, 5)))
但是,在编写此行时,我遇到了语法错误。
语法在写行时起作用:
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 3) = j
在之前的一段代码中使用过。
谁能帮我正确编码?
编辑:
这是我的整个循环:
create the variables and tables
For i = 1 To 20
'assingment of variables
Let wac1 = Cells(3 + i, 2)
Let wam1 = Cells(3 + i, 3)
Let prince1 = Cells(3 + i, 4)
Let annualdef1 = Cells(3 + i, 5)
Let annualprepay1 = Cells(3 + i, 6)
Let loss1 = Cells(3 + i, 7)
'creation of tables
For j = 1 To wam1
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 3) = j
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 4) = prince1
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 5) = ipayment(prince1, wac1)
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 7) = preprince(prince1, annualprepay1, j, wam1)
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 8) = defprince(prince1, annualdef1)
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 6) = schedpay(prince1, Worksheets("Bond_" & CStr(i)).Cells(7 + j, 8), j, wam1)
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 9) = recovprince(Worksheets("Bond_" & CStr(i)).Cells(7 + j, 8), loss1)
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 10) = totprincepaid(Worksheets("Bond_" & CStr(i)).Cells(7 + j, 6), Worksheets("Bond_" & CStr(i)).Cells(7 + j, 7), Worksheets("Bond_" & CStr(i)).Cells(7 + j, 8), recov1(loss1))
Worksheets("Bond_" & CStr(i)).Cells(7 + j, 11) = balance1(Worksheets("Bond_" & CStr(i)).Cells(7 + j, 4), Worksheets("Bond_" & CStr(i)).Cells(7 + j, 6), Worksheets("Bond_" & CStr(i)).Cells(7 + j, 7), Worksheets("Bond_" & CStr(i)).Cells(7 + j, 8))
prince1 = Worksheets("Bond_" & CStr(i)).Cells(7 + j, 11)
Next j
suminterest = Excel.WorksheetFunction.Sum(Range(Worksheets("Bond_" & CStr(i)).Cells(8, 5), Worksheets("Bond_" & CStr(i)).Cells(7 + wam1, 5)))
Next i
Range("M1") = suminterest
我希望能够将 20 个 suminterest 中的每一个存储为自己的变量并键入 range("M1") = suminterest_X 以获取相应的变量。
【问题讨论】:
-
“我正在尝试创建编号变量” - 为什么需要它?
-
我有一个循环创建 20 个选项卡,每个选项卡都有不同的表。我希望能够对 20 个选项卡中的每一个中的一列求和,并将它们保存为变量“suminterest_X”,其中“suminterest_1”对应于表 1 中列的总和,依此类推。
-
一般来说,字典或一些原始的 OOP 就可以满足您的需求。
-
你试过了吗:Application.WorksheetFunction.Sum(Worksheets("Bond_" & CStr(i)).Range("E8:E" & 7 + wam1))
-
我编辑了我的问题,希望它能把它放在更多的上下文中。