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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2009, 12:07   #1
Danatos
 
Регистрация: 24.03.2009
Сообщений: 4
По умолчанию как округлить числа во всём столбце(2500 ячеек)?

Люди, пожалуйста,как округлить числа во всём столбце(2500 ячеек)?
Danatos вне форума Ответить с цитированием
Старый 07.04.2009, 12:15   #2
alex_r
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 30
По умолчанию

Данный макрос раундит все ячейки в выделении. Правда только формулы, но думаю не составит труда его переделать и под числа

Код:
Sub Round_all()
Dim myStr As String
Dim cel As Range
For Each cel In Selection
If cel.HasFormula = True Then
If Not cel.Formula Like "=ROUND(*" Then
myStr = Right(cel.Formula, Len(cel.Formula) - 1)
cel.Value = "=ROUND(" & myStr & ",0)"
End If
End If
Next
End Sub
alex_r вне форума Ответить с цитированием
Старый 07.04.2009, 12:30   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Чтобы не перебирать все подряд ячейки в выделенном диапазоне, я бы сделал так:
Код:
Sub RoundAll()
    On Error Resume Next
    For Each Cell In Selection.Cells.SpecialCells(xlCellTypeConstants, xlNumbers)
        Cell.Value = Application.Round(Cell.Value, 0)
    Next
End Sub
Здесь On Error Resume Next - на случай, если в выделенном диапазоне нет ячеек, содержащих числа.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 07.04.2009 в 12:32.
SAS888 вне форума Ответить с цитированием
Старый 07.04.2009, 12:36   #4
alex_r
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 30
По умолчанию

Под поставленную задачу такой вариант конечно лучше. Но он пропускает все формулы

Последний раз редактировалось alex_r; 07.04.2009 в 12:40.
alex_r вне форума Ответить с цитированием
Старый 07.04.2009, 12:53   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Но он пропускает все формулы
Да. Безусловно. А автору нужно оставлять формулы в ячейках? Если нужно, то добавлять в формулу округление (например, как Вы предлагаете) все равно рациональнее методом SpecialCells, и перебирать только ячейки с формулами. А если не требуется сохранять (и модернизировать) формулы, то первой строкой предлагаемого мной макроса нужно добавить
Код:
Selection.Value = Selection.Value
Тем самым "убить" все формулы, сохранив только значения ячеек.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 07.04.2009, 13:45   #6
Danatos
 
Регистрация: 24.03.2009
Сообщений: 4
По умолчанию

у меня русский EXCEL! поэтому Ваши ответы не помогли. И ещё я новичок по EXCEL. Помогите! Растолкуйте более понятно!!!
Danatos вне форума Ответить с цитированием
Старый 07.04.2009, 13:53   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

отметьте столбик, выберите формат ячеек, выберите числовой формат.
Только это способ как изменить способ отображения данных, сами значения не будут округлены.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.04.2009, 13:55   #8
alex_r
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 30
По умолчанию

Это были макросы и, если я не ошибаюсь, они во всех версиях одинаковые. Для того, что б им воспользоваться, нужно нажать alt+F11, откроется вижуал бейсик эдитор, и вставь вышеприведенный код - для Вашего случая можно его вставить в "Лист1" например. Потом в екселе, нужно нажать alt+F8, и из списка выбрать нужный макрос.

Последний раз редактировалось alex_r; 07.04.2009 в 14:11.
alex_r вне форума Ответить с цитированием
Старый 07.04.2009, 13:56   #9
Danatos
 
Регистрация: 24.03.2009
Сообщений: 4
По умолчанию

Так мне не подходит. Надо , чтобы все числа в ячейках округлились до кратного 5
Danatos вне форума Ответить с цитированием
Старый 07.04.2009, 14:01   #10
Danatos
 
Регистрация: 24.03.2009
Сообщений: 4
По умолчанию

нажал alt+F11 , но там темное поле и ничего не вставляется. Что делать?
Danatos вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить повторение чисел в столбце komar73 Microsoft Office Excel 17 27.12.2011 16:54
Как округлить число до сотых в Edit xxxsas Общие вопросы C/C++ 3 25.01.2009 09:04
Изменения данных большого числа ячеек NDEV Microsoft Office Excel 2 21.11.2008 13:49
idHTTP - всё обо всём... KiDoki Работа с сетью в Delphi 2 14.11.2008 11:31
Как посчитать сумму в столбце таблицы? Иллидан Microsoft Office Word 1 15.04.2008 21:30