VBA编程(一)

学习VBA编程
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim VarValue1, VarValue2 As String
    Dim varMaxcolcount, varMaxrowcount, varIsMoveUp, varNowcol, varNowrow, i, Varcolor1, Varcolor2, varIsMoveLeft, VarIsUp As Integer
    Dim varFromCell, varToCell As Object
  

    varMaxrowcount = ActiveSheet.UsedRange.Rows.Count
    varMaxcolcount = ActiveSheet.UsedRange.Columns.Count

    'VarIsUp=1则上下交换,否则左右交换
    VarIsUp = 1

    '只移动10次,次数可以修改,自己修改,改成1则只移动一次

    For i = 1 To 10
        varNowcol = Fix(Rnd() * varMaxcolcount) + 1
        varNowrow = Fix(Rnd() * varMaxrowcount) + 1

        Set varFromCell = ActiveSheet.Cells(varNowrow, varNowcol)

        '随机上下移动或者左右移动

        If Fix(Rnd() * 10) Mod 2 = 0 Then
            VarIsUp = 1
        Else
            VarIsUp = 0
        End If

        If VarIsUp = 1 Then

            Select Case varNowrow
                Case 1
                    varIsMoveUp = 1
                Case varMaxrowcount
                    varIsMoveUp = 0
                Case Else

                    If Fix(Rnd() * 10) Mod 2 = 0 Then
                        varIsMoveUp = 1
                    Else
                        varIsMoveUp = 0
                    End If

            End Select

            If varIsMoveUp = 1 Then
                varNowrow = varNowrow + 1
            Else
                varNowrow = varNowrow - 1
            End If

        Else

            Select Case varNowcol
                Case 1
                    varIsMoveLeft = 1
                Case varMaxcolcount
                    varIsMoveLeft = 0
                Case Else

                    If Fix(Rnd() * 10) Mod 2 = 0 Then
                        varIsMoveLeft = 1
                    Else
                        varIsMoveLeft = 0
                    End If

            End Select

            If varIsMoveLeft = 1 Then
                varNowcol = varNowcol + 1
            Else
                varNowcol = varNowcol - 1
            End If

        End If

        Set varToCell = ActiveSheet.Cells(varNowrow, varNowcol)
        'waitTime = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 1)
        'Application.Wait waitTime
        '此处暂停0.1秒
        Sleep (1000)

        VarValue1 = varFromCell.Value
        VarValue2 = varToCell.Value
        Varcolor1 = varFromCell.Font.Color
        Varcolor2 = varToCell.Font.Color
        varToCell.Value = VarValue1
        varFromCell.Value = VarValue2
        varToCell.Font.Color = Varcolor1
        varFromCell.Font.Color = Varcolor2

    Next i

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

歇歇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值