首页 > 解决方案 > 根据不同的单元格公式显示用户表单

问题描述

我正在开发一个部门游戏,该游戏将根据获得的总积分累加积分并显示用户表单。例如,当单元格达到 50-99 点 (sum(A2:A10)) 时,单元格 A1(玩家 1)应显示 UserForm1。一旦他们达到 100-149 点,它将显示 UserForm2,这将持续到 1000 点。

我在使用 VBA 的 Worksheet_Calculate 部分时遇到了一些问题。如果玩家 1 达到 50 分,然后玩家 2 达到 50 分(单元格 B2),则 UserForm1 应该只为玩家 2 显示一次。相反,使用我现在正在处理的代码,UserForm1 显示两次,因为两个参数都为真。我无法“跳出”第一个 if 语句,并且代码仅引用 Range("B1") 而不测试 Range("A1") 的 if 语句。另外,使用我当前的代码,如果 Range("A1") 不大于 50 但 Range("B1") 是,则 UserForm1 不会显示。

我能找到的所有研究都只显示了如何解决这个问题,如果你有一个玩家使用 If...Then...Else 而没有关于是否有多个玩家。

下面是我正在使用的代码(在我解决这个问题之前的早期阶段,我无法将其余的用户表单写入代码)。

Private Sub Worksheet_Calculate()

If Range("A1").Value >= 50 And Range("A1").Value < 100 Then
UserForm1.Show
Else
End If

If Range("B1").Value >= 50 And Range("B1").Value < 100 Then
UserForm1.Show
Else
End If

End Sub

标签: excelvba

解决方案


推荐阅读