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

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

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

Добавьте перед расчетом application.enableevents=false, а после - true.
...
Рейтинг: 0 / 0
28.02.2018, 15:27
    #39608541
Занято
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена Change на Calculate
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
28.02.2018, 15:43
    #39608559
Занято
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена Change на Calculate
при попытке записать true красным горит .
...
Рейтинг: 0 / 0
01.03.2018, 11:40
    #39608923
Занято
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена Change на Calculate
Так работает :
Код: 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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена Change на Calculate / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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