百分重谢!

tester 2005-01-10 11:29:31
一个电子表格
http://www.freewebs.com/martin_ua/Scenario%20Anaysis.xls
在表Strategies中有一列Implied rate,而后几列 如:No Hedge, IRS, Periodic KO swap 等都是根据前面的Implied rate,等作为自变量,通过公式计算出来的动态结果。
之后,把所有的结果加起来得到最下面一行的6个总值

现在,我想另外建两个表,如附件中所示的表Scenarios and 表Results
假设我有100个Implied rate 在Scenarios表中, 就相当于刚才我们前面说的自变量
我想编一段VBA程序实现,同样的在Strategies表中的操作,并一次性的把100*6个总值结果全部输出到Results表中,应该怎么做呀?

请大家帮忙,还是挺急的,不一定要帮我全写出来,给点提示,或者类似的代码实例,我一律撒分
谢谢啦
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tester 2005-01-12
  • 打赏
  • 举报
回复
hmm...谢谢。
我已经录制了marco,并试图改写。现在有一个问题是, 从scenario表中读100组数的时候,我不知道怎样一组一组的移动,比如,循环的第一组数是range("B5,B25").Select, 第二组是range("C5,C25").Select ...我怎么样才能通过循环变量自动更替,range 里面的参数,range("D5,D25"), range("E5,E25") ....依此类推
多谢
osman003 2005-01-12
  • 打赏
  • 举报
回复
这是从Strategies表读取数据,表名可以根据需要更改的
osman003 2005-01-12
  • 打赏
  • 举报
回复
Range("B4").Select
ActiveCell.FormulaR1C1 = _
"=Strategies!R[6]C[3]*(Strategies!R[6]C[5]+1%)*(Strategies!R[6]C[2]-Strategies!R[6]C[1])/360"

通过录制宏得到上述代码,你可以在这个基础上进行修改,
如:计算100个No Hedge值

dim i as integer

for i=0 to 99
Results!R[i+1]C[3].Select
ActiveCell.FormulaR1C1 = _
"=Strategies!R[6+i]C[3]*(Strategies!R[6+i]C[5]+1%)*(Strategies!R[6+i]C[2]-Strategies!R[6+i]C[1])/360"
next i
tester 2005-01-12
  • 打赏
  • 举报
回复
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 1/12/2005 by user
'

'
Dim i As Integer 'number of scenarios in row
Dim j As Integer 'number of cells in column

'Dim x As Integer 'index


For i = 1 To 100
Sheets("Scenarios").Select
Range("A5").Select
ActiveCell.Offset(0, i).Select
Range(Selection, Selection.End(xlDown)).Select


Selection.Copy

Sheets("Strategies").Select
Range("G8:G28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False
Calculate
Range("H29:M29").Select
Selection.Copy
Sheets("Results").Select
Range("B1").Select
ActiveCell.Offset(i, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next i
End Sub


tester 2005-01-11
  • 打赏
  • 举报
回复
我想可能我说得还不是很明白,Strategies表已经实现了一组“Implied rate”为自变量的功能,我想做的就是创建100组Implied rate自变量,通过Strategies里面的6个Functions(No Hedge, IRS, Periodic KO Swap, Subsidized Swap, Range Accrual + KO, Revese Snowball
)进行计算,加和,并将所有的结果写到Results表中.
谢谢!!
jam021 2005-01-11
  • 打赏
  • 举报
回复
up
osman003 2005-01-11
  • 打赏
  • 举报
回复
表Scenarios:
Implied rate =Strategies!G8

表Results
No Hedge =Strategies!E8*(Strategies!G8+1%)*(Strategies!D8-Strategies!C8)/360
以此类推

然后在VBA里做一个循环
tester 2005-01-11
  • 打赏
  • 举报
回复
put 50 credit more in, PLEASE, HELP
tester 2005-01-11
  • 打赏
  • 举报
回复
osman003
能否帮忙稍微具体写一下,比如说怎么从scenario表中读,怎么写回。小弟没学过VBA,现学估计是干不及了,明天就要递上去。望高人相助,在下毕百分向报
osman003 2005-01-11
  • 打赏
  • 举报
回复
表Scenarios:
Implied rate =预设值

表Results
No Hedge =Scenarios!E8*(Scenarios!G8+1%)*(Scenarios!D8-Scenarios!C8)/360
以此类推

上面是公式,然后从某处读取循环次数(如:100次),进行循环计算,计算一次写入表Results一次
aohan 2005-01-10
  • 打赏
  • 举报
回复
晚了,准备睡觉

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧