Foxtable(狐表)用户栏目专家坐堂 → 求助:如下VBA代码该怎么改?


  共有1904人关注过本帖树形打印复制链接

主题:求助:如下VBA代码该怎么改?

帅哥哟,离线,有人找我吗?
落叶孤影
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1618 威望:0 精华:0 注册:2016/5/5 14:56:00
求助:如下VBA代码该怎么改?  发帖心情 Post By:2019/2/22 19:06:00 [只看该作者]

以前一个离职的同事写的一段代码,现在提示出错,本人小白看不懂,请大神帮忙看看哪里错了,谢谢!

 Sub tt()
 Application.ScreenUpdating = False
      Dim d
      Dim arr
      Dim x As Integer
      Dim rng As Object, rngs As Object
      Set rng = Sheets(4).Rows(2).Find([b1], , , xlWhole)
      Set rngs = Sheets(4).Rows(2).Find([b2], , , xlWhole)
      rngc = rng.Column
      rngsc = rngs.Column  提示这里错误
      
      Set d = CreateObject("scripting.dictionary")
     
      For i = 4 To Sheets.Count - 3
         For y = 4 To 48
            d(Sheets(2).Cells(y, 2).Value) = 0
         Next
            Sheets(i).Select
            arr = Sheets(i).Range("j3:nx48")
            For x = rngc To rngsc
               If IsDate(Sheets(i).Cells(2, x)) = True Then
                   For y = 4 To 39
                      d(Sheets(2).Cells(y, 2).Value) = d(Sheets(2).Cells(y, 2).Value) + arr(y - 3, x - 9)
                   Next
                   For y = 40 To 40
                      d(Sheets(2).Cells(y, 2).Value) = arr(y - 3, rngc - 9)
                   Next
                    For y = 41 To 49
                      d(Sheets(2).Cells(y, 2).Value) = arr(y - 3, x - 9)
                   Next
                   
               End If
            ThisWorkbook.Sheets(2).Cells(4, i - 1).Resize(d.Count) = Application.Transpose(d.items)
             
          Next
      Next
      Sheets(2).Select
  
     Set rng = Nothing
      Set rngs = Nothing
     Application.ScreenUpdating = True
        End Sub
'srow = Sheets(i).UsedRange.Rows.Count

[此贴子已经被作者于2019/2/22 19:08:09编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
落叶孤影
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1618 威望:0 精华:0 注册:2016/5/5 14:56:00
  发帖心情 Post By:2019/2/22 19:06:00 [只看该作者]

 Sub tt()
 Application.ScreenUpdating = False
      Dim d
      Dim arr
      Dim x As Integer
      Dim rng As Object, rngs As Object
      Set rng = Sheets(4).Rows(2).Find([b1], , , xlWhole)
      Set rngs = Sheets(4).Rows(2).Find([b2], , , xlWhole)
      rngc = rng.Column
      rngsc = rngs.Column
      
      Set d = CreateObject("scripting.dictionary")
     
      For i = 4 To Sheets.Count - 3
         For y = 4 To 48
            d(Sheets(2).Cells(y, 2).Value) = 0
         Next
            Sheets(i).Select
            arr = Sheets(i).Range("j3:nx48")
            For x = rngc To rngsc
               If IsDate(Sheets(i).Cells(2, x)) = True Then
                   For y = 4 To 39
                      d(Sheets(2).Cells(y, 2).Value) = d(Sheets(2).Cells(y, 2).Value) + arr(y - 3, x - 9)
                   Next
                   For y = 40 To 40
                      d(Sheets(2).Cells(y, 2).Value) = arr(y - 3, rngc - 9)
                   Next
                    For y = 41 To 49
                      d(Sheets(2).Cells(y, 2).Value) = arr(y - 3, x - 9)
                   Next
                   
               End If
            ThisWorkbook.Sheets(2).Cells(4, i - 1).Resize(d.Count) = Application.Transpose(d.items)
             
          Next
      Next
      Sheets(2).Select
  
     Set rng = Nothing
      Set rngs = Nothing
     Application.ScreenUpdating = True
        End Sub
'srow = Sheets(i).UsedRange.Rows.Count


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/22 20:28:00 [只看该作者]

我也看不懂

 回到顶部