Страницы: 1
RSS
Отображение информации в зависимости от указанного количества листов, ошибка вывода результата вычислений
 
Доброго времени суток!

Задача следующая.
Если в столбце "Коль-во листов" стоит 1, то в столбец "Номер листа" ставится порядковый номер. Программа работает.
Если в столбце Коль-во листов" стоит 2 и более, то в столбец "Номер листа" должно выводиться начало протокола и его окончание, т.е для примера, протокол имеет 2 листа, результат должен выводиться 3-5, т.е 3 страница начало, а 5 его окончание.
В програмном коде использую 2 варианта суммирования ячеек столбца, в зависимости от того, как я суммирую, выдает разные ошибки. Оба варианта закоментированы. Помогите пожалуйста с решением поставленной задачи.

Файл- пример прилагаю. Спасибо!
 
так попробуйте:
Код
Cells(str + np + 1, 5) = WorksheetFunction.Sum(Range(Cells(str, 4), Cells(str + np, 4))) + 3 _
             - WorksheetFunction.Sum(Range(Cells(str, 4), Cells(str + 1 + np, 4))) + 2
 
Нет, ничего не выдает. Ошибки нет но и результата тоже нет.
Мне нужно не вычитать значение, а предоставить ответ в виде 4-5, т.к в примере 2 листа
 
Покажите в файле желаемый результат и опишите задачу ( не всегда можно разобрать чужой макрос и проще написать новый)
Не бойтесь совершенства. Вам его не достичь.
 
Код
Sub Оглавление()
r = Cells(Rows.Count, 2).End(xlUp).Row
Range(Cells(21, 5), Cells(r, 5)).ClearContents
For i = r To 21 Step -1
  If Cells(i, 4) = 1 Then
  Cells(i, 5) = WorksheetFunction.Sum(Range(Cells(21, 4), Cells(i, 4)))
  Else
  Cells(i, 5) = "'" & WorksheetFunction.Sum(Range(Cells(21, 4), Cells(i, 4))) - Cells(i, 4) + 1 _
                & " - " & WorksheetFunction.Sum(Range(Cells(21, 4), Cells(i, 4)))
  End If
Next
End Sub
Изменено: k61 - 04.05.2020 22:03:04
 
Или так еще можно :)
Код
Sub Soderjanie()
    Dim i&, n&
For i = 21 To Cells(Rows.Count, 2).End(xlUp).Row
    n = n + 1
 If Cells(i, 4).Value = 1 Then
    Cells(i, 5).Value = n
 End If
 If Cells(i, 4).Value > 1 Then
    Cells(i, 5).Value = n & Chr(173) & n + Cells(i, 4).Value - 1
    n = n + Cells(i, 4).Value - 1
 End If
Next i
End Sub
Изменено: _Igor_61 - 04.05.2020 22:13:40
 
Всем огромное спасибо за помощь! Все заработало!!!
Страницы: 1
Наверх