![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Вы просто недопонимаете логику работы формул.
Обычно формула пересчитывается всякий раз, когда изменяется ее аргумент. Если аргументом является та же ячейка, где содержится формула, получается бесконечный цикл, или циклическая ссылка: формула помещает результат вычисления в ячейку - ячейка изменяется - формула снова вычисляет результат и помещает в ячейку - ячейка изменяется и т.д. Попробуйте ввести в А1 формулу =A1/2 - что получается? IgorGO упомянул итеративные вычисления. Это специфический метод вычислений с использованием циклических ссылок, иногда очень эффективный. Но в данном случае это явно не нужно.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
![]()
Про циклические ссылки я прекрасно понимаю. Идея состоит в том, чтобы сформировать формулу в той же ячейке, предварительно поместив (или скопировав) ее изначальное значение в буфер обмена, поле временной формы (или др.). Это очень практично, поскольку далеко не всегда удобно использовать соседние ячейки.
|
![]() |
![]() |
![]() |
#13 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
в буфере обмена на момент выполнения строки
Selection.Formula = "=" & x & "/1.18" должно быть какое-то числовое значение. проверок на ошибки нет, вот и вылетает по несоответсвию типов. вообще-то, пока никто, кроме Вас, не знает что происходит на листе и что должно происходить (отсутсвует понимание логики процесса), соответсвенно, такие советы Вы и получаете.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Если Вы хотите уменьшить значения в выделенном диапазоне "на месте", это можно сделать так:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#15 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Selection.Formula = "=" & selection.value & "/1.18"
без всяких буферов обмена.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
![]()
Я делаю это несколько проще Selection = Selection / 1.18
Пример прикрепил |
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
![]()
selection.value
Вот в чем моя ошибка =) тип данных не указал. Спасибо! |
![]() |
![]() |
![]() |
#18 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
так:
Selection.Formula = "=" & selection.value & "/1.18" в ячейке Вы увидите результат, а в строке формул еще и исходное значение а так: Selection = selection.value/1.18 только значение в ячейке (зато нет доп.вычислений, все уже посчитано)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
![]()
Вся соль как раз в том, чтобы можно было посмотреть изначальное значение =)
Раньше использовал комбинацию макросов: Sub Zapomnit() With ActiveCell: .ClearComments: .AddComment .Text: End With End Sub и Sub vichetNDS() Selection = Selection/1.18 End Sub |
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 19.07.2011
Сообщений: 18
|
![]()
Эдраствуйте всем, помогите пожалуйста, что я делаю неправильно
вот код mas.Range("Cells(v, h):Cells(v, h)").Value = "=" & X1 & "*" & X2 & "" |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
время выполнения кода | Pein95 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.05.2011 23:00 |
Вставка формулы | evdss | Microsoft Office Excel | 3 | 25.02.2011 03:38 |
Форма для выполнения кода | segail | Microsoft Office Excel | 3 | 16.03.2010 13:28 |
вставка формулы в ячейку (vba) | pride | Microsoft Office Excel | 5 | 13.07.2009 09:26 |
вставка формулы | utwer | Microsoft Office Excel | 18 | 27.01.2009 23:48 |