Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2017, 14:00   #1
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию Округление чисел во всем столбце VBA

Здравствуйте!
Подскажите как округлить числа в поле до 2 знаков именно в моем коде. Мои варианты не работают, только визуально убирают

Код:
 Option Explicit
Private sh As Worksheet
 
Private Sub CommandButton1_Click()
   Set sh = ActiveSheet
   Application.ScreenUpdating = False
   Call DeleteEmptyRows
   Call Sortirovka
   Call Summiruem
   Application.ScreenUpdating = True
End Sub
 
 
Private Sub DeleteEmptyRows()
  
   Dim LastRow As Long, r As Long
   With sh.UsedRange
      LastRow = .Rows.Count
      For r = LastRow To 3 Step -1
         If .Cells(r, 1) = "" Then .Rows(r).Delete 
      Next
   End With
End Sub
 
 
Private Sub Sortirovka()
   Dim endRow As Long
   With sh.UsedRange
      .Cells(3, 1).End(xlDown).Select 
      endRow = ActiveCell.Row
      
      .Range(Cells(3, 1), Cells(endRow, 3)).Sort key1:=Columns(1)
   End With
End Sub
 
 
 
Private Sub Summiruem()
   Dim i, last As Long
   Dim sum As Double
   
   Dim tek, tek2, brak As String
   i = 3: sum = 0: brak = "" 
    Do
      With sh
         tek = .Cells(i, 1)
         tek2 = .Cells(i + 1, 1)
         If Not IsNumeric(.Cells(i, 2)) And .Cells(i, 2) <> "" Then
         
            brak = brak & " [" & .Cells(i, 2) & "]"
         Else
            sum = sum + .Cells(i, 2)
         End If
         If tek = tek2 Then
         
            .Rows(i).Delete
         Else 
            .Cells(i, 2) = sum 
           
            If brak <> "" Then .Cells(i, 3) = "ГЃГђГЂГЉ - " & brak
            sum = 0
            brak = "" 
            i = i + 1
            
         End If
      End With
   Loop Until tek = "" 
   
   last = Cells(Rows.Count, 1).End(xlUp).Row
   For i = 3 To last
   Cells(i, 5) = Cells(i, 2) * Cells(i, 4)
   Cells(i, 5).NumberFormat = "0.00"
   Next i
      
End Sub
Также есть отдельный модуль, но это не то

Код:
Sub 1()
   
   last = Cells(Rows.Count, 1).End(xlUp).Row
   For i = 3 To last
   Cells(i, 5) = Cells(i, 2) * Cells(i, 4)
   Next i
    Range("E3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "0.00"
     
End Sub
я использую numberformat, но он только визуально округляет, как округлить с помощью round?
mexx1337 вне форума Ответить с цитированием
Старый 24.06.2017, 15:18   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
For i = 3 To last
   Cells(i, 5) = Round(Cells(i, 2) * Cells(i, 4),2)
   Next i
Не?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка данных во всем столбце HIVE Microsoft Office Excel 4 28.03.2011 15:36
округление чисел world12_tk Помощь студентам 3 26.12.2009 23:06
Как сделать, чтобы результат выполнения макроса записывался по строкам во всем столбце? kipish_lp Microsoft Office Excel 3 26.11.2009 07:18
Округление чисел Vikelf Помощь студентам 1 01.06.2009 12:16
Пожалуйста, требуется подсказка!!! Как изменить сумму денег в копейках на рубли во всем столбце???? yur4eG Microsoft Office Excel 2 05.05.2008 18:52