Foxtable(狐表)用户栏目专家坐堂 → 代码


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

主题:代码

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
代码  发帖心情 Post By:2015/4/10 8:44:00 [只看该作者]

                For n As Integer = 5 To 54
                    If ws1.cells(6+i,n-2).Formula = "" Then
                        ws1.cells(6+i,n-2).Value = Sheet1(n,3).Value
                    End If
                    If ws1.cells(6+i,n+48).Formula = "" Then
                        ws1.cells(6+i,n+48).Value = Sheet1(n,7).Value
                    End If
                Next
                For n As Integer = 6 To 35
                    If ws2.cells(6+i,n-3).Formula = "" Then
                        ws2.cells(6+i,n-3).Value = sheet2(n,3).Value
                    End If
                    If ws2.cells(6+i,n+27).Formula = "" Then
                        ws2.cells(6+i,n+27).Value = sheet2(n,7).Value
                    End If
                Next
如何书写得简便点?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/10 8:50:00 [只看该作者]

For n As Integer = 5 To 54
                    If ws1.cells(6+i,n-2).Formula = "" Then
                        ws1.cells(6+i,n-2).Value = Sheet1(n,3).Value
                    End If
                    If ws1.cells(6+i,n+48).Formula = "" Then
                        ws1.cells(6+i,n+48).Value = Sheet1(n,7).Value
                    End If
   if n>=6 andalso n<=35 then
     If ws2.cells(6+i,n-3).Formula = "" Then
                        ws2.cells(6+i,n-3).Value = sheet2(n,3).Value
                    End If
                    If ws2.cells(6+i,n+27).Formula = "" Then
                        ws2.cells(6+i,n+27).Value = sheet2(n,7).Value
                    End If
   end if
Next

少遍历一次效率高点

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/4/10 11:03:00 [只看该作者]

For i As Integer = 0 To 5
Dim Ws & i As MSExcel.WorkSheet = Wb.WorkSheets(i)
Next
这种情况应如何改才生效?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/10 11:06:00 [只看该作者]

For i As Integer = 0 To 54
  if i<=5 then
   end if
  if i>=5 then
  end if
  if i>=6 andalso n<=35 then
  end if
next

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/4/10 11:10:00 [只看该作者]

For i As Integer = 0 To 5
Dim Ws & i As MSExcel.WorkSheet = Wb.WorkSheets(i)
Next
这种情况应如何改才生效?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/10 11:17:00 [只看该作者]

变量不能这么定义,也不用这么定义  直接 这样 即可  每次都会生成新的,不会有重名问题.    如果希望使用 上一级 可以直接指定 Wb.WorkSheets(2)

For i As Integer = 0 To 5
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(i)
Next

 回到顶部