Я не знаю, если это место, чтобы задать такой вопрос, но поскольку это касалось некоторых скриптов VBA, я думал, что это возможно.Macro возвращает #REF! in excel
Я пишу эту функцию Макро:
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
Но как вы можете видеть здесь, в этой картине:
возвращает ошибку говоря #REF!
. Я пишу это в fx: =Mod10(a1)
.
Сценарий находится здесь: http://kronsell.net/fikkontrol.htm (датский сайт) Он используется для вычисления окончательной цифры в строке. Немного нравится при вычислении кода EAN-13, просто еще один вид вычисления.
Если кто-нибудь с знанием VBA или EXCEL может сказать мне, что делать, я бы очень признателен.
'MOD10' действительный адрес ячейки (Excel 2007+), так же, как' A1' –
Это довольно странно, что VBE не выделяет его как зарезервированное ключевое слово. Вместо этого функция просто игнорируется и не выполняется. Если вы попытаетесь переименовать его в 'Function Rem()', он сразу выделит его, так как 'Rem' (* комментарий *) является зарезервированным ключевым словом, но я не вижу никакого соединения между функциями MOD() и' MOD10' как имя функции: O –
Вам также необходимо изменить ссылку 'Mod10' в последней строке функции на' Mod_10'. Дайте мне знать, если это не решит вашу проблему. –