楼主: pt20120816
1219 1

[问答] 求助,这个语句为什么运行不了啊? [推广有奖]

  • 0关注
  • 0粉丝

大专生

25%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
148 点
帖子
14
精华
0
在线时间
62 小时
注册时间
2012-8-16
最后登录
2014-3-15

楼主
pt20120816 发表于 2014-1-2 20:53:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
TRD_Daylr.xls有三列,分别是股票代码、交易日、收益率,RE_A1.XLS也有三列,分别是股票代码、公布日期、交易所。我想把RE_A1.XLS里所有公布日期是2001年的公司在公布日期前三天至后两天的收益率放在TRD_Daylr.xls的sheet 2中,找到了下面这段代码,可是提示下标越界,怎么回事啊?

Sub aaa()
Dim A1 As Worksheet, A2 As Worksheet, p As Integer, ts As Integer, I As Integer, j As Integer
ts = 1
Set A1 = Workbooks("RE_A1.xls").Worksheets("Sheet1")
Set A2 = Workbooks("TRD_Dalyr.xls").Worksheets("Sheet1")
Workbooks("TRD_Dalyr.xls").Worksheets("Sheet2").Select
m = A1.UsedRange.Rows.Count
n = A2.UsedRange.Rows.Count
For I = 2 To m
If Year(A1.Cells(I, 2)) = 2001 Then
   For j = 2 To n
     If A1.Cells(I, 1) = A2.Cells(j, 1) And A1.Cells(I, 2) = A2.Cells(j, 2) Then
      For p = -3 To 2
      Cells(ts + 4 + p, 1) = A2.Cells(j + p, 1)
      Cells(ts + 4 + p, 2) = A2.Cells(j + p, 2)
      Cells(ts + 4 + p, 3) = A2.Cells(j + p, 3)
      Cells(ts + 4 + p, 4) = A1.Cells(I, 3)
      Next p
      ts = ts + 6
     End If
    Next j
   End If
  Next I
End Sub
二维码

扫码加我 拉你入群

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

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

关键词:worksheets worksheet Workbooks workbook Integer 股票代码 收益率 交易所 交易日

回帖推荐

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

你没有说是哪一句话出现越界错误(照理说,VBA的Debug会提示的)。在不知是哪句出错的情况下,我看: 可能性1:是Set A2 = Workbooks("TRD_Dalyr.xls").Worksheets("Sheet1")出错,因为你的文学说明说的是文件名是TRD_Daylr.xls,但你的程序那句是TRD_Dalyr.xls,注意两者是y与l的顺序不同,文件名不同,是越界的第1种可能。当然,此句的下一句也有文件名,要改就要一起改。 可能性2:For p = -3 To 2 Cells(ts + 4 + p, ...

本帖被以下文库推荐

沙发
TimeT 发表于 2014-1-5 17:18:10
你没有说是哪一句话出现越界错误(照理说,VBA的Debug会提示的)。在不知是哪句出错的情况下,我看:
可能性1:是Set A2 = Workbooks("TRD_Dalyr.xls").Worksheets("Sheet1")出错,因为你的文学说明说的是文件名是TRD_Daylr.xls,但你的程序那句是TRD_Dalyr.xls,注意两者是y与l的顺序不同,文件名不同,是越界的第1种可能。当然,此句的下一句也有文件名,要改就要一起改。
可能性2:For p = -3 To 2
       Cells(ts + 4 + p, 1) = A2.Cells(j + p, 1)
注意p有可能是-3,那么j+p(由于j>=2)有可能是-1或0,这都有可能造成cells(j+p,1)越界的情况
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 08:13