Страницы: 1
RSS
Макрос округления значений в таблице
 
Добрый день!
Имеется код макроса который в указанном листе округляет значения в каждой ячейке до 3х знаков после запятой при условии что в ячейке нет формулы и ячейка не является пустой. Диапазон для округления задан значениями S(строка) и С(столбец) в листе "ц-1"
Подскажите как сделать чтоб этот диапазон определялся при выделении ячеек: т.е. выделяем мышкой диапазон (таблицу) и при нажатии хот-кея(либо вытащить кнопку на панель или ленту) запускался макрос и обрабатывал данный диапазон.
И ещё можно ли как ни будь оптимизировать код. Что то мне кажется подход грубоват, в моём случае :( Макрос реально долго работает. табличка приложена в файле Пример

Код
Sub Округление()
Dim wb As Workbook
    Dim c As Integer
    Dim S As Integer
    Dim a As Range
    
    Set wb = ThisWorkbook
    Set ws1 = wb.Worksheets("Ц-1")
 For S = 49 To 79
 For c = 2 To 61
    If Cells(S, c).HasFormula Then
        Cells(S, c).Value = Cells(S, c).Formula
 Else
    If Cells(S, c).Value = "" Then
        Cells(S, c).Value = ""
 Else
       Cells(S, c).Value = Round(Cells(S, c), 3)
 End If
    End If
 Next
    Next
End Sub

Изменено: Pavel Picasso - 19.08.2016 15:32:18
 
Код
Sub Округлялка()
    Dim c As Range
    On Error Resume Next
    For Each c In Selection.SpecialCells(2, 1)
        If c <> 0 Then c.Value = Round(c, 3)
    Next
End Sub
Я сам - дурнее всякого примера! ...
 
kuklp Подскажите, как в ваш макрос вставить округление если знак 5 последний в числе, то в большую сторону?
 
Владислав Кузницын, 4 года прошло…
Если вам нужно обычное математическое округления (как на листе), то используйте --Format$(c,"0.000") (для данного кода и 3ёх знаков после запятой
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Владислав Кузницын, если Вы будете обращаться с вопросами не к пользователю, а к форуму - шансы на скорейшее решение сильно повысятся. Если выложите пример - вот так есть, а так надо - шансы на скорейшее решение сильно повысятся. Форумчанам не придется гадать:
Цитата
Jack Famous написал:
Если вам нужно обычное математическое..
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему (гостей: 1)
Наверх