Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена формулы её значением - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Замена формулы её значением (Макросы/Sub)
Замена формулы её значением
Ktulu Дата: Понедельник, 18.08.2014, 04:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Уважаемые коллеги, прошу помочь с решением вопроса. Есть ощущение, что её можно решить только макросом.
Суть проблемы:
Есть некая формула, которая раскидана по всему файлу(тысячи ячеек с ней). Формула громоздкая, поэтому при автоматическом вычислении файл зависает на минуту.
Каким образом можно заменить формулу на имеющиеся её значения с учетом того, что к формуле уже прибавлены или отняты другие числа?
Запрос похож на специальную вставку, но в данном случае диапазоны не связаны. В файле с примером желтые ячейки должны будут содержать числа(результат формулы), а не саму формулу.
К сообщению приложен файл: _Microsoft_Exce.xls (19.0 Kb)
 
Ответить
СообщениеУважаемые коллеги, прошу помочь с решением вопроса. Есть ощущение, что её можно решить только макросом.
Суть проблемы:
Есть некая формула, которая раскидана по всему файлу(тысячи ячеек с ней). Формула громоздкая, поэтому при автоматическом вычислении файл зависает на минуту.
Каким образом можно заменить формулу на имеющиеся её значения с учетом того, что к формуле уже прибавлены или отняты другие числа?
Запрос похож на специальную вставку, но в данном случае диапазоны не связаны. В файле с примером желтые ячейки должны будут содержать числа(результат формулы), а не саму формулу.

Автор - Ktulu
Дата добавления - 18.08.2014 в 04:24
Alex_ST Дата: Понедельник, 18.08.2014, 10:15 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, например, для выделенного на листе диапазона можно так:
[vba]
Код
Sub Replace_by_VAL()   '  в выбранном диапазоне в не скрытых ячейках заменить формулы на значения 'http://www.excelworld.ru/forum/3-45-68810-16-1383818995
      Dim rRng As Range, rAr As Range
      On Error Resume Next
      With ActiveWindow.RangeSelection.Cells
         If .Count = 1 Or .MergeCells Then   ' если выбрана всего одна ячейка, то SpecialCells выберет все на листе, соответствующие условию
            .Item(1) = .Item(1).Value: Exit Sub
         Else   ' если выбрано несколько ячеек, то SpecialCells выберет только нужные
            Set rRng = .SpecialCells(xlCellTypeFormulas).SpecialCells(xlCellTypeVisible)
         End If
      End With
      If rRng Is Nothing Then Exit Sub
      For Each rAr In rRng.Areas: rAr.Value = rAr.Value: Next
      rRng.Select ' это просто для наглядности - выделить обработанные ячейки
End Sub
[/vba]
А для всей книги - см. ЗДЕСЬ



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 18.08.2014, 10:35
 
Ответить
СообщениеНу, например, для выделенного на листе диапазона можно так:
[vba]
Код
Sub Replace_by_VAL()   '  в выбранном диапазоне в не скрытых ячейках заменить формулы на значения 'http://www.excelworld.ru/forum/3-45-68810-16-1383818995
      Dim rRng As Range, rAr As Range
      On Error Resume Next
      With ActiveWindow.RangeSelection.Cells
         If .Count = 1 Or .MergeCells Then   ' если выбрана всего одна ячейка, то SpecialCells выберет все на листе, соответствующие условию
            .Item(1) = .Item(1).Value: Exit Sub
         Else   ' если выбрано несколько ячеек, то SpecialCells выберет только нужные
            Set rRng = .SpecialCells(xlCellTypeFormulas).SpecialCells(xlCellTypeVisible)
         End If
      End With
      If rRng Is Nothing Then Exit Sub
      For Each rAr In rRng.Areas: rAr.Value = rAr.Value: Next
      rRng.Select ' это просто для наглядности - выделить обработанные ячейки
End Sub
[/vba]
А для всей книги - см. ЗДЕСЬ

Автор - Alex_ST
Дата добавления - 18.08.2014 в 10:15
Rioran Дата: Понедельник, 18.08.2014, 10:23 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Ktulu, здравствуйте.

Каким образом можно заменить формулу

Здесь применим простейший приём:

[vba]
Код
Sub Value_Miner()

Range("D21:D43").Value = Range("D21:D43").Value

End Sub
[/vba]
К сообщению приложен файл: Value_Dealer.xlsm (16.0 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеKtulu, здравствуйте.

Каким образом можно заменить формулу

Здесь применим простейший приём:

[vba]
Код
Sub Value_Miner()

Range("D21:D43").Value = Range("D21:D43").Value

End Sub
[/vba]

Автор - Rioran
Дата добавления - 18.08.2014 в 10:23
Ktulu Дата: Вторник, 19.08.2014, 10:14 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Благодарю за помощь! Приёмчик принял на вооружение.
Rioran отдельное спасибо за юмор :)
 
Ответить
СообщениеБлагодарю за помощь! Приёмчик принял на вооружение.
Rioran отдельное спасибо за юмор :)

Автор - Ktulu
Дата добавления - 19.08.2014 в 10:14
Alex_ST Дата: Вторник, 19.08.2014, 12:12 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Да уж! Учитывая то, что в первом посте написано:
Есть некая формула, которая раскидана по всему файлу(тысячи ячеек)

диапазоны не связаны.
предложение
Здесь применим простейший приём:
это, действительно, юмор! :D



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеДа уж! Учитывая то, что в первом посте написано:
Есть некая формула, которая раскидана по всему файлу(тысячи ячеек)

диапазоны не связаны.
предложение
Здесь применим простейший приём:
это, действительно, юмор! :D

Автор - Alex_ST
Дата добавления - 19.08.2014 в 12:12
RAN Дата: Вторник, 19.08.2014, 12:29 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Да уж! Учитывая то, что в первом посте написано:
Цитата Ktulu, 18.08.2014 в 04:24, в сообщении № 1
Есть некая формула, которая раскидана по всему файлу(тысячи ячеек)

диапазоны не связаны.


Леш, в свете вышеизложенного, RangeSelection юмор не меньший. :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Да уж! Учитывая то, что в первом посте написано:
Цитата Ktulu, 18.08.2014 в 04:24, в сообщении № 1
Есть некая формула, которая раскидана по всему файлу(тысячи ячеек)

диапазоны не связаны.


Леш, в свете вышеизложенного, RangeSelection юмор не меньший. :D

Автор - RAN
Дата добавления - 19.08.2014 в 12:29
Alex_ST Дата: Вторник, 19.08.2014, 12:30 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Андрей,
читай внимательнее:
А для всей книги - см. ЗДЕСЬ



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 19.08.2014, 12:31
 
Ответить
СообщениеАндрей,
читай внимательнее:
А для всей книги - см. ЗДЕСЬ

Автор - Alex_ST
Дата добавления - 19.08.2014 в 12:30
RAN Дата: Вторник, 19.08.2014, 12:33 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Аты внимательно читал?
Есть некая формула

формула<>формулы


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеАты внимательно читал?
Есть некая формула

формула<>формулы

Автор - RAN
Дата добавления - 19.08.2014 в 12:33
Rioran Дата: Вторник, 19.08.2014, 13:16 | Сообщение № 9
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Rioran отдельное спасибо за юмор

Прошу пардону, сей юмор - плод моей невнимательности, читал задание наискосок =)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Вторник, 19.08.2014, 13:16
 
Ответить
Сообщение
Rioran отдельное спасибо за юмор

Прошу пардону, сей юмор - плод моей невнимательности, читал задание наискосок =)

Автор - Rioran
Дата добавления - 19.08.2014 в 13:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Замена формулы её значением (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!