通过按钮调用时宏不能正常工作

时间:2014-12-31 23:17:00

标签: excel-vba excel-2007 vba excel

使用Excel 07

以下是我目前正在使用的代码。但是,当我将它分配给代码时,清除内容的部分不会运行,但其他所有部分都会运行。如果我只是F8通过它清除内容没有问题。我不知道为什么会这样,希望你能帮忙。

Sub Save_Session()

Call UnProtectAll

If Worksheets("Drawing").Range("A2").Value = Worksheets("Drawing").Range("I2").Value Then


i = (Worksheets("Drawing").Range("B2").Value * 25) - 24

Worksheets("Drawing").UsedRange.Copy Destination:=Worksheets("Sessions").Range("A" & i)

Worksheets("Drawing").Range("B2").Value = Worksheets("Drawing").Range("B2").Value + 1

    With Sheets("Drawing")
        Range("A2").ClearContents
        Range("C2:C20").ClearContents
        Range("E2:H20").ClearContents
    End With

Else

MsgBox "You do not have all the winners yet!!!"

End If

Sheets("Drawing").Select
Call ProtectAll

End Sub

1 个答案:

答案 0 :(得分:2)

当你巧合地走过去时,它可能正在工作,因为你碰巧在工作表上#34;绘图"运行宏时。

要访问对象的属性或参数,您需要使用"。"由于您已经使用WITH语句声明了要尝试访问的内容。

以下是MSDN上的一篇文章,解释了WITH...End statement在VBA中的工作原理。

With Sheets("Drawing")
    .Range("A2").ClearContents
    .Range("C2:C20").ClearContents
    .Range("E2:H20").ClearContents
End With