vba - 宏返回#REF!在excel中

标签 vba excel

我不知道这是否是提出这样一个问题的地方,但由于它与一些 VBA 脚本有关,我认为它可能会。

我一直在写这个宏函数:

Function Mod10(tl As String) As Byte

    Dim c(13) As Integer
    Dim er As Integer

    c(13) = Mid(tl, 14, 1) * 2
    c(12) = Mid(tl, 13, 1)
    c(11) = Mid(tl, 12, 1) * 2
    c(10) = Mid(tl, 11, 1)
    c(9) = Mid(tl, 10, 1) * 2
    c(8) = Mid(tl, 9, 1)
    c(7) = Mid(tl, 8, 1) * 2
    c(6) = Mid(tl, 7, 1)
    c(5) = Mid(tl, 6, 1) * 2
    c(4) = Mid(tl, 5, 1)
    c(3) = Mid(tl, 4, 1) * 2
    c(2) = Mid(tl, 3, 1)
    c(1) = Mid(tl, 2, 1) * 2
    c(0) = Mid(tl, 1, 1)

    For i = 0 To 13
        If c(i) > 9 Then
            c(i) = CInt(Left(c(i), 1)) + CInt(Right(c(i), 1))
        End If
    Next

    er = 0
    For i = 0 To 13
        er = er + c(i)
    Next

    Mod10 = 10 - er Mod 10

End Function

但正如您在这张图片中看到的那样:

enter image description here

它返回一条错误消息 #REF! .我在 fx 中写这个:=Mod10(a1) .

可在此处找到脚本:http://kronsell.net/fikkontrol.htm (丹麦网站)
它用于计算字符串的最后一位。有点像计算 EAN-13 代码时,只是另一种计算。

如果有 VBA 或 EXCEL 知识的人能告诉我该怎么做,我将不胜感激。

最佳答案

不知道为什么,但它看起来像 Mod10是保留关键字。我尝试将函数重命名为 Mod_10它奏效了。

enter image description here

如果你持有 Option Explicit,你可能需要声明一些变量。在模块的顶部。

试试这个并从带有 =MOD_10(A1) 的单元格中调用它

   Function MOD_10(tl As String) As Byte

    Dim i As Long
    Dim c(13) As Integer
    Dim er As Integer

    c(13) = Mid(tl, 14, 1) * 2
    c(12) = Mid(tl, 13, 1)
    c(11) = Mid(tl, 12, 1) * 2
    c(10) = Mid(tl, 11, 1)
    c(9) = Mid(tl, 10, 1) * 2
    c(8) = Mid(tl, 9, 1)
    c(7) = Mid(tl, 8, 1) * 2
    c(6) = Mid(tl, 7, 1)
    c(5) = Mid(tl, 6, 1) * 2
    c(4) = Mid(tl, 5, 1)
    c(3) = Mid(tl, 4, 1) * 2
    c(2) = Mid(tl, 3, 1)
    c(1) = Mid(tl, 2, 1) * 2
    c(0) = Mid(tl, 1, 1)

    For i = 0 To 13
        If c(i) > 9 Then
            c(i) = CInt(Left(c(i), 1)) + CInt(Right(c(i), 1))
        End If
    Next

    er = 0
    For i = 0 To 13
        er = er + c(i)
    Next

    MOD_10 = 10 - er Mod 10

End Function

关于vba - 宏返回#REF!在excel中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18719098/

相关文章:

vba - Range SpecialCells ClearContents 改为清除整个工作表

excel - 在 excel/google 电子表格中将 url 剥离为基本 url

Excel VBA : Unable to get the Match property of the WorksheetFunction class

vba - 使用范围单元格时出现错误 1004

vba - 将所有 excel 插件模块导出到 .bas 文件的最快方法是什么?

vba - 使用 VBA 在 Excel 中绘图的最佳方法是什么?

sql - 如何将多行excel数据传输到 Access 表中

vba - 使用子/函数修改变量

Excel 2016 在 VBA PasteSpecial 上失败

excel - 如何阻止电子邮件地址被解析为超链接?