Страницы: 1
RSS
округление VBA
 
Есть кусочек кода:  
  If UserForm2.CheckBox1.Value = True Then    
  Cells(i, 9).Value = Cells(i, 9) / 5  
  Cells(i, 9).Value = Int(Cells(i, 9))  
  Cells(i, 9).Value = Cells(i, 9) * 5  
  End If  
Я так округляю числа до ближайшего числа кратного 5  
но строка  Cells(i, 9).Value = Int(Cells(i, 9)) не округляет а просто убирает дробную часть.Подскажите что вписать в код, чтоб число округлялось по матиматическим правилам(1,5=2 а не 1 и т.д.)  
Спасибо.
 
Application.RoundUp(3.5, 0)  
округляем вверх 3,5 , 0 знаков после зпт, итого будет 4.
 
{quote}{login=}{date=19.01.2009 01:15}{thema=}{post}Application.RoundUp(3.5, 0)  
округляем вверх 3,5 , 0 знаков после зпт, итого будет 4.{/post}{/quote}  
sorri, up
 
угу  
 
Cells(i, 9) = WorksheetFunction.RoundUp(Cells(i, 9), 0)
 
О спасибо
 
есть у меня такая функция    
=ОКРУГЛТ  
 
=ОКРУГЛТ(102;5)  оеругляет число 102 до кратного 5.  
Но почему-то у меня не работает.
 
ОКРУГЛТ  
   
См. также  
 
Возвращает число, округленное с желаемой точностью.  
 
Если данная функция недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».  
 
Инструкции    
 
В меню Сервис выберите команду Надстройки.    
В списке надстроек выберите Пакет анализа и нажмите кнопку OK.    
Выполните инструкции программы установки, если это необходимо.    
Синтаксис  
 
ОКРУГЛТ(число;точность)  
 
Число    — округляемое значение.  
 
Точность     — точность, с которой требуется округлить число.  
 
Заметки  
 
ОКРУГЛТ производит округление с избытком. Округление производится, если остаток от деления числа на точность больше или равен половине точности.  
 
Пример  
 
Чтобы этот пример проще было понять, скопируйте его на пустой лист.  
 
Инструкции    
 
Создайте пустую книгу или лист.    
Выделите пример в разделе справки. Не выделяйте заголовок строки или столбца.    
 
 
Выделение примера в справке.  
 
Нажмите сочетание клавиш CTRL+C    
На листе выделите ячейку A1 и нажмите сочетание клавиш CTRL+V.    
Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих эти результаты, нажмите сочетание клавиш CTRL+` (апостроф) или в меню Сервис укажите на пункт Зависимости формул и выберите режим Режим проверки формул.    
     
1    
2    
3    
4    
5    
A B    
Формула Описание (результат)    
=ОКРУГЛТ(10; 3) Округляет число 10 до ближайшего числа, кратного 3 (9)    
=ОКРУГЛТ(-10; -3) Округляет число -10 до ближайшего числа, кратного 3 (-9)    
=ОКРУГЛТ(1,3; 0,2) Округляет число 1,3 до ближайшего числа, кратного 0,2 (1,4)    
=ОКРУГЛТ(5; -2) Возвращает сообщение об ошибке, т. к. число -2 и 5 имеют разные знаки (#ЧИСЛО!)
 
{quote}{login=Марчук}{date=19.01.2009 01:37}{thema=}{post}ОКРУГЛТ  
Если данная функция недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».  
 
Инструкции    
 
В меню Сервис выберите команду Надстройки.    
В списке надстроек выберите Пакет анализа и нажмите кнопку OK.    
Выполните инструкции программы установки, если это необходимо.    
{/post}{/quote}  
вот я не внимательный :(
 
{quote}{login=Марчук}{date=19.01.2009 01:38}{thema=Re: }{post}{quote}{login=Марчук}{date=19.01.2009 01:37}{thema=}{post}ОКРУГЛТ  
Если данная функция недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».  
 
Инструкции    
 
В меню Сервис выберите команду Надстройки.    
В списке надстроек выберите Пакет анализа и нажмите кнопку OK.    
Выполните инструкции программы установки, если это необходимо.    
{/post}{/quote}  
вот я не внимательный :({/post}{/quote}  
Спасибо очень полезная функция я о ней не знал. Чем больше узнаю Excel, тем больше удивляюсь его возможностям. Та ты шо...
 
Немогу понять где собака зарыта . Помогите. Во вложении файл там всё подробно описано.
 
{quote}{login=Alexcel}{date=20.01.2009 01:06}{thema=неправильно округляет}{post}Немогу понять где собака зарыта . Помогите. Во вложении файл там всё подробно описано.{/post}{/quote}  
Правильно округляет!  
http://msdn.microsoft.com/en-us/library/bb239502.aspx  
Кроме RoundUp, есть и RoundDown и просто Round. Вот тебе просто Round нужен.
 
{quote}{login=Alexcel}{date=20.01.2009 01:06}{thema=неправильно округляет}{post}Немогу понять где собака зарыта . Помогите. Во вложении файл там всё подробно описано.{/post}{/quote}  
замени RoundUp на RoundDown  
  Cells(i, 9) = WorksheetFunction.RoundDown(Cells(i, 9), 0)
 
Здравствуйте! У меня вроде бы элементарный вопрос, но ответа найти не могу. Помогите пожалуйста.  
В таблице Excel мне нужно сложить два числа 858,52+814,53=комп.выдает 1673,06.(округляет). Дело в том, что, если установить 3 знака после запятой, то ответ будет 1673,055. Т.к. мне нужно два знака после запятой, то я хочу, чтобы складывались два знака, не глядя на 3-й, не округлялось, т.к всем ясно, что 2+3=5, а не 6. Помогите пожалуйста. С уважением, Любовь
 
Параметры - Точность как на экране.
 
Округляйте слагаемые 858.52 и 814.53.  
Или поставьте в настройках "точность как на экране".
 
А у меня с Вашими числами получается не 1673,055, 1673,05  
 
Вывод: у Вас изначально слагаемые имеют большую разрядность, чем Вы видите в ячейках. Есть два пути: формулой при сложении округлять  
=ОКРУГЛ(A1;2)+ОКРУГЛ(B1;2)  
 
или сначала все числа привести к тому виду, в котором видите:  
Меню-Параметры Excel-ДОполнительно-Задать точность как на экране. Это в 2007 Excel. В 2003 это где-то в Сервис-Параметры-вкладка Вычисления.  
Но будьте осторожны - данное действие уже НЕОБРАТИМО, поэтому испытывать советую на КОПИИ книги.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
можно так:  
=сумм(округл(A1:A10;2))  
 
прим.  
1. А1:А10 - диапазон для примера, укажите свой.  
2. формула массива
 
Файл - округляю.
 
Помогите, пожалуйста, использую макрос для создания динамическиой диаграммы, все арботает но он округляет числа. Как сделать чтобы не округлял. Вот код:  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
     
   Const DropDownList = "$O$3"      
   Const DataRange = "$A$26:$M$32"    
   Const ChartRange = "B24:M24"          
     
   Dim NewData As Variant  
   Dim OldData As Variant  
   Dim AnimationArray As Variant  
   Dim OldPoint As Long  
   Dim NewPoint As Long  
   Dim x As Integer  
   Dim i As Integer  
   Dim p As Double  
 
   If Target.Address = DropDownList Then  
       SelectedItem = ActiveSheet.Range(DropDownList).Value  
       SelectedItemRow = WorksheetFunction.Match(SelectedItem, ActiveSheet.Range(DataRange).Columns(1), 0) + ActiveSheet.Range(DataRange).Row - 1  
       NewData = ActiveSheet.Cells(SelectedItemRow, 2).Resize(1, 12).Value  
       OldData = ActiveSheet.Range("B24:M24").Value  
       AnimationArray = NewData  
 
       For i = 1 To 15  
           p = 100 / 100 / 15 * i  
           For x = 1 To WorksheetFunction.Count(NewData)  
               OldPoint = OldData(1, x)  
               NewPoint = NewData(1, x)  
               AnimationArray(1, x) = OldPoint - (OldPoint - NewPoint) * p  
           Next x  
           Range(ChartRange).Value = AnimationArray  
           DoEvents  
       Next i  
   End If  
End Sub
 
Какие числа округляются? В коде округления нет. Может, надо поменять формат ячеек или подписей диаграммы и убрать в Параметрах галку "точность как на экране"?  
Кстати,  
p = 100 / 100 / 15 * i  
можно заменить на  
p = i / 15
 
как вывести  параметр " задать точность как на экране" на какую нибудь кнопку на панели быстрого доступа или новую вкладку?
 
Записать макрос не пробовали?  
 
Sub Macro1()  
'  
' Macro1 Macro  
' Macro recorded 14.09.2011 by Hugo  
'  
 
'  
   Application.MaxChange = 0.001  
   ActiveWorkbook.PrecisionAsDisplayed = True  
End Sub  
 
Sub Macro2()  
'  
' Macro2 Macro  
' Macro recorded 14.09.2011 by Hugo  
'  
 
'  
   Application.MaxChange = 0.001  
   ActiveWorkbook.PrecisionAsDisplayed = False  
End Sub
 
А как округлять все числа в столбце кратно 10 в большую сторону?  
например есть 64,24 надо 70
 
Принцип такой  
 
application.roundup(64.24,-1)  
 
А дальше зависит от того, как задать столбец, есть ли в нем формулы или только константы, есть ли нечисловые значения.
Страницы: 1
Читают тему
Наверх