gpt4 book ai didi

vba - Excel 中的宏中的 If 语句

转载 作者:行者123 更新时间:2023-12-04 21:20:30 33 4
gpt4 key购买 nike

我最初编写了一个宏,可以清除 Excel 工作表中的指定单元格,但我希望能够仅在需要时清除某些行。这就是我的宏目前的样子。

Sub Rectangle1_Click()
response = MsgBox("Are You Sure?", vbYesNo

If response = vbNo Then
MsgBox ("OK")
Exit Sub
End If
Range("A4:C30").Select
Selection.ClearContents
Range("G4:H30").Select
Selection.ClearContents
End Sub

我想让它看起来更像这样
Sub Rectangle1_Click()
response = MsgBox("Are You Sure?", vbYesNo)

If response = vbNo Then
MsgBox ("OK")
Exit Sub
End If
If I4 = 1 then
Range("A4:C4","G4:H4").Select
Selection.ClearContents
Exit Sub
End If
End Sub

然后对第 5-30 行重复该代码,当我使用多个 if 语句运行代码时,在弹出对话框后它似乎没有做任何事情。还有什么我需要改变的吗?

最佳答案

没有 .Select必需的。此外,您不需要测试 vbNo .只需代码 vbYesvbNo默认情况下什么都不做

Sub Rectangle1_Click()

response = MsgBox("Are You Sure?", vbYesNo)

If response = vbYes and Range("I4") = 1 Then
Range("A4:C4","G4:H4").ClearContents
End If

End Sub

如果您想在他们单击 no 时显示消息框你可以这样做(尽管这似乎是多余的,因为用户已经说过 no )。如果您将 vbNo最后,你可以避免 Exit Sub因为这将在自然流动期间发生
Sub Rectangle1_Click()

response = MsgBox("Are You Sure?", vbYesNo)

If response = vbYes and Range("I4") = 1 Then
Range("A4:C4","G4:H4").ClearContents
ElseIf response = vbNo
Msgbox "OK"
End If

End Sub

关于vba - Excel 中的宏中的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447876/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com