vba 报错 下标越界

zgjxncytl 2014-05-13 08:33:14
sub aa()

i21 = Sheets("表1").Range("C26").Value
i31 = Sheets("表1").Range("K26").Value
i41 = Sheets("表1").Range("M26").Value


Dim 时间3, 时间4
    
    时间3 = TimeValue(Now())
    时间4 = TimeValue("6:30")

    If 时间3 <= 时间4 Then
         
       If Format(Now, "d") = 1 And Format(Now, "m") = 1 Then
          yewuname = v_path & "\yewuke" & Format(Now, "yyyy") - 1 & "12.xls"
       End If
       If Format(Now, "d") = 1 And Format(Now, "m") <> 1 Then
          yewuname = v_path & "\yewuke" & Format(Now, "yyyy") & "" & Format(Now, "m") - 1 & ".xls"
       End If
       
       j = Trim(Day(DateAdd("d", -1, Date)))
       
    Else
        j = Format(Now, "d")
        ye
wuname = v_path & "\yewuke" & Format(Now, "yyyy") & "" & Format(Now, "m") & ".xls"
    End If
    
   
Set wb1 = Application.Workbooks.OpenXML("http://170.130.32.11/hello/yewu/" & yewuname)



wb1.Sheets(j).[B11] = i21
wb1.Sheets(j).[B12] = i31
wb1.Sheets(j).[B13] = i41
wb1.Save
wb1.Close

end sub



[color=#0000FF]wb1.Sheets(j).[B11] = i21[color=#0000FF]
这句被调试  好像是j的原因 
  在时间小于6:30时是填入前一天的sheet中去
如果是时间大于6:30时  是填入当天的sheet中去
在当天的填入是没有错的
可是填入前一天的情况时就会报错  
...全文
274 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-05-14
  • 打赏
  • 举报
回复
在立即窗口中用 ?变量名 显示当前变量的值
bcrun 2014-05-14
  • 打赏
  • 举报
回复
代码有点乱,能排下版么
xbj_hyml 2014-05-14
  • 打赏
  • 举报
回复
楼上说的,你可以试一下, 或者在出错的地方,加个断点,看下 j 的值 可能你的 j 过大,而你的sheets数,并没有这么多,就越界了

2,462

社区成员

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

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