Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2044|回复: 3

这段代码在sheet9为非激活状态不能正确执行,为什么?

[复制链接]
发表于 2012-8-26 19:34 | 显示全部楼层 |阅读模式
这段代码在sheet9为非激活状态不能正确执行,为什么?
Sub changePosition()
  
     Dim rRow As Long
     Dim LRow As Long, suoYouShuJu, linShiShuJu(1 To 8), suiJIShu
     Dim suoYouShuJuMax As Integer
     Dim i As Integer, j As Integer, k As Integer
    'ActiveSheet.Parent.Worksheets("sheet9").Active
      rRow = Worksheets("sheet9").UsedRange.Row
      LRow = rRow + Worksheets("sheet9").UsedRange.Rows.Count - 1
     
      suoYouShuJu = Worksheets("sheet9").Range(Cells(1, 1), Cells(LRow, 6))
   
      suoYouShuJuMax = UBound(suoYouShuJu)
      
      For i = 1 To suoYouShuJuMax
      suiJIShu = (Rnd() * ((suoYouShuJuMax - i + 1) - 1) + 1) \ 1
            
            For j = 1 To 6
            
                linShiShuJu(j) = suoYouShuJu(suiJIShu, j)
                suoYouShuJu(suiJIShu, j) = suoYouShuJu(suoYouShuJuMax - i + 1, j)
                suoYouShuJu(suoYouShuJuMax - i + 1, j) = linShiShuJu(j)
            
            Next j
        Next i
   Worksheets("sheet2").Range("a1").Resize(6) = suoYouShuJu
      
    End Sub






excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-8-26 19:49 | 显示全部楼层
  1. suoYouShuJu = Worksheets("sheet9").Range(Worksheets("sheet9").Cells(1, 1), Worksheets("sheet9").Cells(LRow, 6))
复制代码
你可以用
  1. With Sheets("sheet9")
  2.     代码    '这样清楚点
  3. End With
复制代码
回复

使用道具 举报

发表于 2012-8-26 19:50 | 显示全部楼层
如果是在其它工作簿为激活状态自然不会执行,因为使用的Sheet9没有加工作簿名称。
回复

使用道具 举报

 楼主| 发表于 2012-8-26 19:54 | 显示全部楼层
wayy 发表于 2012-8-26 19:50
如果是在其它工作簿为激活状态自然不会执行,因为使用的Sheet9没有加工作簿名称。

那非激活状态下,比如sheet2激活,怎么才能正确执行代码,而且每次的随机排列都是相同的为什么?谢谢
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 01:35 , Processed in 0.185070 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表