+ -
当前位置:首页 → 问答吧 → 打乱顺序执行打印再恢复原状的问题(先谢了)

打乱顺序执行打印再恢复原状的问题(先谢了)

时间:2011-08-09

来源:互联网

说明在附件中,请大家帮忙,谢谢!

附件

打乱顺序执行打印再恢复原状的问题20110809.rar(8.79 KB)

2011-8-9 15:14, 下载次数: 6

作者: zhengrui-csb   发布时间: 2011-08-09

哪位高手帮忙看看呗,谢谢!!!

作者: zhengrui-csb   发布时间: 2011-08-09

Sub Macro1()
n = [a65536].End(3).Row
Range("e2:e" & n) = "=rand()"
Range("a2:e" & n).Sort [e2]
Range("a1:d" & n).PrintOut
Range("a2:e" & n).Sort [b2]
Range("e2:e" & n).ClearContents
End Sub

作者: Zamyi   发布时间: 2011-08-09

复制内容到剪贴板
代码:
Dim arr, brr(), d As Object, i&, j&, x&
Set d = CreateObject("scripting.dictionary")
arr = Range("a2:d" & Range("a65536").End(xlUp).Row)
ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
For i = 1 To UBound(arr)
line1:
    x = Int(Rnd * UBound(arr)) + 1
    If Not d.exists(x) Then d.Add x, "" Else GoTo line1
Next i
a = d.keys
For i = 0 To d.Count - 1
    For j = 1 To UBound(arr, 2)
        brr(i + 1, j) = arr(a(i), j)
    Next j
Next i
Range("a2").Resize(UBound(brr), UBound(brr, 2)) = brr
Range("a1").CurrentRegion.PrintOut Copies:=1, Collate:=True
Range("a2").Resize(UBound(arr), UBound(arr, 2)) = arr

作者: dsmch   发布时间: 2011-08-09

三楼高手的,我没明白是什么意思
四楼高手的,输入代码后提示“编译错误:无效外部过程”
补充一点:最后一行的以下空白和顶行的数据不能换位置,谢谢大家

作者: zhengrui-csb   发布时间: 2011-08-09

引用:
原帖由 zhengrui-csb 于 2011-8-9 16:04 发表
三楼高手的,我没明白是什么意思
四楼高手的,输入代码后提示“编译错误:无效外部过程”
补充一点:最后一行的以下空白和顶行的数据不能换位置,谢谢大家
n = [a65536].End(3).Row-1

作者: Zamyi   发布时间: 2011-08-09

附件
打乱顺序执行打印再恢复原状的问题20110809.rar (10.26 KB)
打乱顺序执行打印再恢复原状的问题20110809.rar (10.26 KB)
下载次数: 1
2011-8-9 16:13

作者: dsmch   发布时间: 2011-08-09

相关阅读 更多