VBA:使用一张图纸上的数据以另一张图纸为目标

VBA:使用一张图纸上的数据以另一张图纸为目标,vba,excel,Vba,Excel,我正在使用Excel创建一个工具,帮助我进行D&D活动,目前正在开发一个施法系统。我的目标是能够点击一张工作表(“战斗”)上的一个按钮,该按钮将减少不同工作表(目标工作表的名称源自“战斗”工作表中的文本值)中对应于给定法术等级的法术槽(数值)。这些值由“战斗”表中的单元格引用,该值将随其他表中单元格的值而变化。 我的密码是: Private Sub CastSpell_Click() SpellAction "CastSpell" End Sub Sub SpellAction(By

我正在使用Excel创建一个工具,帮助我进行D&D活动,目前正在开发一个施法系统。我的目标是能够点击一张工作表(“战斗”)上的一个按钮,该按钮将减少不同工作表(目标工作表的名称源自“战斗”工作表中的文本值)中对应于给定法术等级的法术槽(数值)。这些值由“战斗”表中的单元格引用,该值将随其他表中单元格的值而变化。 我的密码是:

Private Sub CastSpell_Click()
    SpellAction "CastSpell"
End Sub


Sub SpellAction(ByVal action As String)
    Dim Combat As Worksheet
    Set Combat = ThisWorkbook.Sheets("Combat")
    Dim Player As Worksheet
    Set Player = ThisWorkbook.Sheets(Cells(5, 12).Text)

    Dim foundCell As Range
    Set foundCell = Player.Range("Z31", "Z39").Find(Left(Combat.Cells(18, 12).Text, 3))

    If Not (foundCell Is Nothing) Then
        r = foundCell.Row
    Else
        MsgBox "Couldn't find the current selection."
        Exit Sub
    End If

    Select Case LCase(action)
        Case "CastSpell"
            If Not (Player.Cells(r, 28) = 0) Then
                Cells(r, 28) = Cells(r, 28) - 1
            Else
                MsgBox "No remaining spell slots of this level."
                Exit Sub
            End If
    End Select
End Sub
在哪里
单元格(5,12)
表示从下拉列表中选择的文本字符串,
范围(“Z31”,“Z39”)
表示包含值(1)到(9)的列,
单元格(18,12)
表示拼写的名称,(例如:(1)治愈伤口,
单元格(r,28)
中引用的数字28表示AB列,这是单元格的一列,我想减少它的值


当前,当我单击按钮(名为“CastSpell”并位于“战斗”表中)时,它会运行
拼写动作
代码,为
玩家
foundCell
r
找到正确的值,但不会执行
“CastSpell”
中的代码。我哪里出错了?

我声明的范围是按“Z31:Z39”执行的。目前,您仅指z31和z39,而不是中间的所有单元格。逗号是将多个范围按顺序包括在内的方式。然而,这可能不是它失败的原因,值得指出的是,你错过了大部分选择。。它看起来也像是在小写字符串上使用了选择大小写,但随后检查是否有大写字母的字符串,这很可能是将字符串转换为“xxxxx”但检查“XxxxxXxx”时失败的原因。或者转换它,然后检查字符串的小写版本,或者根本不需要转换

这有用吗