Добрый день, помогите с решение данной проблемы:
Имеется документ с базой (вкладка База) и отчетом по базе (вкладка Отчет) и все бы ничего но в этом году сменили номера договоров с целого числа на целое число+Год (см. скрин), и при формировании отчета номер автоматом превращается в дату (ставлю формат ячейки общий (значение меняется на 43850). Как победить?
под спойлером код отчета:
Срины
Имеется документ с базой (вкладка База) и отчетом по базе (вкладка Отчет) и все бы ничего но в этом году сменили номера договоров с целого числа на целое число+Год (см. скрин), и при формировании отчета номер автоматом превращается в дату (ставлю формат ячейки общий (значение меняется на 43850). Как победить?
под спойлером код отчета:
Скрытый текст |
---|
Sub Generate_ShortReport() 'очищаем отчет Worksheets("Отчёт").Range("A6:N100000").ClearContents 'берем кол-во строк cnt = Worksheets("База").Cells.SpecialCells(xlCellTypeLastCell).Row 'задаем переменную - с какой строки начать заполнять отчет currentrow = 5 'задаем переменную с полным итогом Dim FullSum As Long FullSum = 0 'Проходим по каждой строке For iForCount = 2 To cnt Step 1 'берем строку только если в ней есть номер и она не скрыта If Worksheets("База").Range("A" & iForCount).Value <> "" And Worksheets("База").Rows(iForCount).EntireRow.Hidden = False Then 'копируем основную часть Worksheets("Отчёт").Range("A" & CStr(currentrow) & ":I" & CStr(currentrow)).Value = Worksheets("База").Range("A" & CStr(iForCount) & ":I" & CStr(iForCount)).Value 'берем кол-во столбцов lColumn = Worksheets("База").Cells(iForCount, Columns.Count).End(xlToLeft).Column 'вычисляем кол-во услуг ServiceCount = (lColumn - 9) \ 3 'Копируем услуги Dim Sum As Long Sum = 0 For j = 1 To ServiceCount Step 1 'проверяем, что не пустая строка If (Not Format(Worksheets("База").Cells(iForCount, 11 + j * 5).Value) = vbNullString And Worksheets("База").Cells(iForCount, 11 + j * 5).Value <> 0) Then Sum = Sum + CStr(Worksheets("База").Cells(iForCount, 11 + j * 5).Value) End If Next 'Добавляем итого Worksheets("Отчёт").Cells(currentrow, 10).Value = "Итого по услугам" Worksheets("Отчёт").Cells(currentrow, 14).Value = Sum FullSum = FullSum + Sum currentrow = currentrow + 1 End If Next Worksheets("Отчёт").Cells(currentrow, 10).Value = "Итого по отчету" Worksheets("Отчёт").Cells(currentrow, 14).Value = FullSum ' чтоб не резало глаза скрываем пустые столбцы Worksheets("Отчёт").Range("K:M").EntireColumn.Hidden = True End Sub |