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 |
|