楼主: liukuan303
2160 5

[资产定价] Excel金融建模问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

已卖:13份资源

大专生

90%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0.4748
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
215 点
帖子
52
精华
0
在线时间
66 小时
注册时间
2013-4-12
最后登录
2017-11-9

楼主
liukuan303 学生认证  发表于 2014-3-29 16:07:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本人在学excel金融建模,下面的代码是调用规划求解,求解有卖空限制的有效投资组合,但是运行时,会出现:Range作用于对象'Global‘时失败,新手不懂,求高人指点呀
Option Explicit
Sub Solve()
    SolverOk SetCell:="$b$27", MaxMinVal:=1, ValueOf:="0", ByChange:="$b$19:$b$22"
    SloverSolve UserFinish:=True
End Sub
Sub doit()
    Dim counter
    Range("Results").ClearContents
    For counter = 1 To 40
        Range("constant") = -0.04 + counter * 0.005
        Solve
        Application.SendKeys ("{Enter}")
        Range("Result").Cells(counter, 1) = ActiveSheet.Range("constant")
        Range("Result").Cells(counter, 2) = ActiveSheet.Range("portfolio_sigma")
        Range("Result").Cells(counter, 3) = ActiveSheet.Range("portfolio_mean")
        Range("Result").Cells(counter, 4) = ActiveSheet.Range("x_1")
        Range("Result").Cells(counter, 5) = ActiveSheet.Range("x_2")
        Range("Result").Cells(counter, 6) = ActiveSheet.Range("x_3")
        Range("Result").Cells(counter, 7) = ActiveSheet.Range("x_4")
    Next counter
End Sub

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL xcel exce 金融建模 cel Excel

捕获.PNG (26.74 KB)

捕获.PNG

回帖推荐

TimeT 发表于2楼  查看完整内容

光看你的程序,只能看出你的SolverSolve拼写错误,你拼成Slo...。其他看上去不一定错,但是你的出错信息表明你的一些range的定义可能没定义好,例如"Results"定义了吗?光看你的图和程序不得而知。还有:EXCEL应该会告诉你错在哪个地方的,你在出错信息出现时点击debug,程序会用黄色标出出错的语句,这样可大大方便你查错。

Chemist_MZ 发表于3楼  查看完整内容

同意楼上,你可以看看黄色的错误标签出现在哪一行。我怀疑例如Range("x1"),x1 是一个cell,你可以直接用.cell,range+cell的用法一般是range(cell1,cell2),如果只是一个cell可能会出问题。好久不碰VBA基本忘光了,随便留点愚见。

TimeT 发表于5楼  查看完整内容

那么要不你把"Results"改成你定义的格子地址试试,例如你把"X1:Y10"定义成Results,你把你那句改成Range("X1:Y100").ClearContents试试。如果成功,就说明你的"Results"没定义,或定义有问题。

本帖被以下文库推荐

我看见,我

沙发
TimeT 发表于 2014-3-29 19:24:39
光看你的程序,只能看出你的SolverSolve拼写错误,你拼成Slo...。其他看上去不一定错,但是你的出错信息表明你的一些range的定义可能没定义好,例如"Results"定义了吗?光看你的图和程序不得而知。还有:EXCEL应该会告诉你错在哪个地方的,你在出错信息出现时点击debug,程序会用黄色标出出错的语句,这样可大大方便你查错。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
chengzhifu2013 + 20 精彩帖子
见路不走 + 5 + 5 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 25  论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
Chemist_MZ 在职认证  发表于 2014-3-29 20:20:32
同意楼上,你可以看看黄色的错误标签出现在哪一行。我怀疑例如Range("x1"),x1 是一个cell,你可以直接用.cell,range+cell的用法一般是range(cell1,cell2),如果只是一个cell可能会出问题。好久不碰VBA基本忘光了,随便留点愚见。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
chengzhifu2013 + 20 精彩帖子
见路不走 + 5 + 5 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 25  论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

扫头像关注公众号“二点三西格玛”衍生品定价与风险管理

板凳
liukuan303 学生认证  发表于 2014-3-29 20:56:50
捕获.PNG TimeT 发表于 2014-3-29 19:24
光看你的程序,只能看出你的SolverSolve拼写错误,你拼成Slo...。其他看上去不一定错,但是你的出错信息表明 ...
出错的是Range("Results").ClearContents,可是我定义了Results啊
我看见,我

报纸
TimeT 发表于 2014-3-30 23:29:15
liukuan303 发表于 2014-3-29 20:56
出错的是Range("Results").ClearContents,可是我定义了Results啊
那么要不你把"Results"改成你定义的格子地址试试,例如你把"X1:Y10"定义成Results,你把你那句改成Range("X1:Y100").ClearContents试试。如果成功,就说明你的"Results"没定义,或定义有问题。
已有 2 人评分经验 论坛币 收起 理由
chengzhifu2013 + 40 精彩帖子
见路不走 + 5 + 5 精彩帖子

总评分: 经验 + 45  论坛币 + 5   查看全部评分

地板
chengzhifu2013 发表于 2018-10-25 19:39:45
鼓励积极讨论

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-9 01:22