Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 3)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

VolunKOV



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Sub EAN13()
For t = 1 To Excel.Selection.Cells.Count
'редактируем введёную строку доведя её до 12 знаков нулями слева
bk = Excel.Selection.Cells(t).Value
If Len(bk) < 12 Then bk = String(12 - Len(bk), "0") & bk
bk = Left(bk, 12)
'вычисляем контрольную цифру
    sy = 0
    For rt = 1 To 12        'перебираем все 12 значащих цифр
        sy = sy + Val(Mid(bk, rt, 1)) * (1 + 2 * ((rt + 1) Mod 2))  'суммируем
                            'все цифры кода, причём каждая вторая цифра
                            'домножается на 3
    Next rt
    sy = 10 - sy Mod 10     'теперь sy равно числу, дополняющему старое
                            'sy до ровного десятка (это и есть контрольная цифра)
    If sy = 10 Then sy = 0  'если получилось 10, то оставляем только 0
    bk = bk & sy            'дописываем контрольную цифру к коду
Excel.Selection.Cells(t).Value = bk      'ставим готовый код обратно где брали
Next
End Sub

Всего записей: 82 | Зарегистр. 01-08-2005 | Отправлено: 19:15 22-01-2010 | Исправлено: VolunKOV, 22:28 22-01-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru