powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена Change на Calculate
13 сообщений из 13, страница 1 из 1
Замена Change на Calculate
    #39606362
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте Уважаемые , посмотрите и если есть возможность замените . Есть варианты с фиксацией значения , но они не устраивают , грузят эксель . Нужен самый простой вариант , с последующей перезагрузкой руками ( фиксация при выводе по dde ) Гуглил много не нашёл ,сам переделать не могу , разряд не позволяет . Спасибо !
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39607481
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Занято,

Непонятно, что вы хотите получить в итоге ? По изменению B1 в С1 записывать А1 ?
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39607776
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Совершенно верно , в В1 значение должно попадать при выводе по DDE . При событии change B1 "обмануть " не получается .
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39607796
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Занято,
в С1 формулу =A1+B1*0 , и VBA не надо :)
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39607816
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В С1 значение меняется однократно , не меняется при новых изменениях в А1
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39607840
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Занято, тогда код
Код: vbnet
1.
2.
3.
Private Sub Worksheet_Calculate()
  Cells(1, 3) = Cells(1, 1)
End Sub

, в любой ячейке листа =B1 , чтобы только изменение В1 вызывало пересчет.
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39607900
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский ! Спасибо , работает . А ещё вопрос , можно ли соединить на одном листе Ваш вариант с : Private Sub Worksheet_Calculate()
If [D2] < [D1] Then [D2] = [D1]
End Sub ( нахождение максимума ) Попробовал , ошибку выдаёт , потом вообще день коту под хвост , эксель вылетел , конечно без сохранения . Соединить хотел ,чтобы не множить листы лишние . Спасибо .
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39608503
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Занято, а в чем проблема?
Код: vbnet
1.
2.
3.
4.
Private Sub Worksheet_Calculate()
  Cells(1, 3) = Cells(1, 1)
  If [D2] < [D1] Then [D2] = [D1]
End Sub
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39608524
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский , проблему выше написал , так и прописал как Вы указали , потом " дебуккк " , и вылетел эксель , было открыто 15 книг , может из за этого косяк ( типа не лезь , мы работаем ) . Попробую сегодня вечером ещё раз . Кстати , у меня к Вам вопрос : влияет ли количество листов в книге на производительность эксель ? Например есть 15 листов , в каждом нахождение максимума минимума , чтоб избежать возможных косяков , делаю ещё 15 для другого события . Книг штук 20 . Я не про вычислительные возможности , а например про приём по DDE .
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39608527
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Занято,

Добавьте перед расчетом application.enableevents=false, а после - true.
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39608541
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke , так ? Исправьте , если нет , пока нет возможности проверить .
Private Sub Worksheet_Calculate()
application.enableevents=false
true
Cells(1, 3) = Cells(1, 1)
If [D2] < [D1] Then [D2] = [D1]
End Sub
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39608559
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при попытке записать true красным горит .
...
Рейтинг: 0 / 0
Замена Change на Calculate
    #39608923
Занято
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так работает :
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Calculate()
application.enableevents= False
Cells(1, 3) = Cells(1, 1)
If [D2] < [D1] Then [D2] = [D1]
application.enableevents= True
End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ
Но к сожалению изменение значения в D1 , D2 изменяет и уже " зафиксированное " значение в C3 . Придётся на разные листы разносить .
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена Change на Calculate
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]