用户定义的函数运行但吐出#VALUE错误

时间:2017-08-31 02:49:17

标签: vba excel-vba excel

答案:愚蠢,愚蠢,愚蠢的错误。首先,我将category as Single置于category as String之前。然后我误用了Cells函数,因为我认为它不接受A1格式的递增。最后,我的if语句是从错误的工作表中提取的。应该是“Gear Chance Effect Stats”表。

很抱歉,这是一个简单的错误。我的VBA培训非常基础,我正在尝试为我的游戏制作一个程序。

我的功能如下。我甚至不能做一个简单的如果类别匹配“FastAtk”,它应该,然后函数等于1(或如果它不匹配则为0)。仍然返回#VALUE错误。我的血沸腾了哈哈。我需要放下。

可从表中读取的类别:http://imgur.com/a/Tj7wm

表格 - 计算类别实例的效果:http://imgur.com/a/rehme

Function MaxGearCalc(category As Single) As Single

cat_reg = WorksheetFunction.CountIf(Worksheets("CharacterBuild").Range("C6:G8"), category)
cat_plus = WorksheetFunction.CountIf(Worksheets("CharacterBuild").Range("C6:G8"), category & "+")

For i = 1 To 18 Step 1
    If category = Worksheets("CharacterData").Cells(1, Column(i + 1)) Then
        max_reg = Worksheets("Gear Chance Effect Stats").Cells(57, Column(i + 1))
        max_plus = Worksheets("Gear Chance Effect Stats").Cells(57, Column(i + 2))
        Exit For
    End If
Next i

MaxGearCalc = cat_plus * max_plus + cat_reg * max_reg

End Function

0 个答案:

没有答案