【发布时间】:2017-03-21 01:52:51
【问题描述】:
如果满足条件,我正在尝试编写 VBA 来运行宏。问题是我可以让它运行第一个宏,然后它就结束了!
每个宏都依赖于各自单元格中的真/假结果。
到目前为止,我已经尝试过:
Sub RUN_ALL_SET_SHEETS()
If Range("C28").Value = False Then
MsgBox "No Team Members Selected?"
End
ElseIf Range("C28").Value = True Then
Dim Response As VbMsgBoxResult
Response = MsgBox("Are you sure you want to set the sheets for the Team Members selected?", vbQuestion + vbYesNo)
If Response = vbNo Then Exit Sub
Else
Return
End If
If Range("C10").Value = True Then
Call Set_Sheet_Daniel
End If
ElseIf Range("C12").Value = True Then
Call Set_Sheet_Gill
End If
ElseIf Range("C14").Value = True Then
Call Set_Sheet_Hollie
End If
ElseIf Range("C16").Value = True Then
Call Set_Sheet_Jo
ElseIf Range("C18").Value = True Then
Call Set_Sheet_Laura_H
ElseIf Range("C20").Value = True Then
Call Set_Sheet_Laura_K
ElseIf Range("C22").Value = True Then
Call Set_Sheet_Lucy
ElseIf Range("C24").Value = True Then
Call Set_Sheet_Mark
ElseIf Range("C26").Value = True Then
Call Set_Sheet_Richard
Else
End If
Sheets("Header").Select
MsgBox "Data Refreshed."
End Sub
任何帮助表示赞赏。
【问题讨论】:
-
如何运行宏?每次更改单元格值或您想要什么时,它都不会神奇地执行?
-
“我可以让它运行第一个但宏结束” ...第一个什么?时间,
If声明等。你能说清楚一点吗?此外,它超出了这个问题的范围,但仅供参考 - 查看您拥有的Set_Sheet_[name]格式,可能不需要 10 多个不同的宏。我假设您可以说,Set_Sheet (Daniel)其中Daniel被传递给另一个宏。这样一来,如果只是更改名称,您就不必创建大量额外的潜艇。 -
你想要的都找到了here
-
If/ElseIf 是互斥的。
-
宏是通过按钮手动运行来运行的。