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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2012, 01:08   #1
Kalikazandr
 
Регистрация: 09.08.2012
Сообщений: 7
По умолчанию Как правильно вставить событие Change листа

Здравствуйте!
Я не программист.
Тут http://mirvba.ru/makrosi-excel/ekspo...cel-v-txt.html взял макрос, который выводит данные ячеек(D29:E31) в блокнот. В этих ячейках формулы, обрабатывающие получаемую через DDE информацию в столбцах A2:B21. Необходимо что бы макрос запускался при каждом изменении результата в ячейках D29:E31. Полазил по разным форумам и тамошние "гуру" советуют использовать событие Change и как бы все. Мало того они между собой там общаются - будет работать или не будет, а вопрос открыт на некоторых форумах уже неделю. А мне очень важно не тыркать кнопку при каждом изменении значений в ячейках D29:E31. Вот сам макрос:
Sub ExportAsText()
Dim lngRow As Long
Dim intCol As Integer

' Открываем файл для сохранения
Open "C:\primer.txt" For Output As #1
' Записываем выделенную части таблицы в файл (построчно)
For lngRow = 1 To Selection.Rows.Count
' Записываем содержимое всех столбцов строки lngRow
For intCol = 1 To Selection.Columns.Count
Write #1, Selection.Cells(lngRow, intCol).Value;
Next intCol
' следующая строка
Print #1, ""
Next lngRow
' закрываем
Close #1
End Sub

Помогите плиз привязать к нему это загадочное Change (сам макрос для меня еще более загадочен)
Заранее благодарен, с превеликим уважением
Kalikazandr вне форума Ответить с цитированием
Старый 11.08.2012, 01:38   #2
Mishel825
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 15
По умолчанию

Private Sub Worksheet_Change(ByVal Target As Range)

Dim MyRange As Range


Set MyRange = Range("D29:E21")
If Not Intersect(Target, MyRange) Is Nothing Then GoTo 10
Exit Sub

10 ExportAsText
End Sub
Mishel825 вне форума Ответить с цитированием
Старый 11.08.2012, 01:56   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

По фотографии лечить трудно.
Это к экстрасенсам обращайтесь без примеров файлов.
Могу предположить,что вы тики обрабатываеие,тогда для вывода там немного другой подход нужен.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.08.2012, 06:18   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
...взял макрос, который выводит данные ячеек(D29:E31) в блокнот. В этих ячейках формулы, обрабатывающие получаемую через DDE информацию в столбцах A2:B21. Необходимо что бы макрос запускался при каждом изменении результата в ячейках D29:E31... А мне очень важно не тыркать кнопку при каждом изменении значений в ячейках D29:E31.
При изменении значений ячеек, полученных как результат расчета по формуле, событие Worksheet_Change не произойдет. Нужно либо контролировать изменение влияющих ячеек, либо использовать событие Worksheet_Calculate.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.08.2012, 10:03   #5
Kalikazandr
 
Регистрация: 09.08.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
По фотографии лечить трудно.
Это к экстрасенсам обращайтесь без примеров файлов.
Могу предположить,что вы тики обрабатываеие,тогда для вывода там немного другой подход нужен.
Добрый день, Вы очень проницательны. Только вывожу стакан через DDE, пример во вложении.
Заранее благодарен
Вложения
Тип файла: zip Книга1.zip (31.0 Кб, 9 просмотров)

Последний раз редактировалось Kalikazandr; 11.08.2012 в 10:09. Причина: не получилось вложить файл
Kalikazandr вне форума Ответить с цитированием
Старый 11.08.2012, 11:47   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Функции для работы с текстовыми файлами взяты
с сайта
Пути для файлов и вариант вывода выберете сами,я надеюсь.
Вложения
Тип файла: rar Стакан.rar (31.8 Кб, 15 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.08.2012, 13:06   #7
Kalikazandr
 
Регистрация: 09.08.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Функции для работы с текстовыми файлами взяты
с сайта
Пути для файлов и вариант вывода выберете сами,я надеюсь.
Спасибо! Макрос действительно работает, только зачем файлы BID1 и OFFER1? как их убрать? И в файл BID выводит так:
12240 92,83
15913 92,7399999999999
32373 92,7199999999999

Извините, настроил вывод стакана на демосчете. 9-ки пропали, выводит ровно, я так понял BID1 и OFFER1 это хронология изменений?
Да, понял как убрать хронологию.
Спасибо огромное!

Последний раз редактировалось Kalikazandr; 11.08.2012 в 13:50.
Kalikazandr вне форума Ответить с цитированием
Старый 14.08.2012, 15:25   #8
Kalikazandr
 
Регистрация: 09.08.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Функции для работы с текстовыми файлами взяты
с сайта
Пути для файлов и вариант вывода выберете сами,я надеюсь.
Добрый день!
Уважаемый doober, объясните мне сущеглупому, как поправить код, чтобы в блокноте сделать запись в виде:
5000,93.02
чтобы в качестве разделителя разрядов была точка, а не запятая(разделитель ячеек я поправил на ",").

Заранее благодарен.
Kalikazandr вне форума Ответить с цитированием
Старый 14.08.2012, 16:02   #9
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Странная у вас однако обработка данных.
Сначала в Excel,потом в текстовик.
Далее программа обрабатывает данные с текстовика,принимает решение и т.д.
Много лишних этапов,это моя точка зрения.
Код:
     For n = 1 To 3
         ss = ss & X(n, 1) & "," & Replace(X(n, 2), ",", ".") & vbCrLf
      Next
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 14.08.2012, 16:25   #10
Kalikazandr
 
Регистрация: 09.08.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Странная у вас однако обработка данных.
Сначала в Excel,потом в текстовик.
Далее программа обрабатывает данные с текстовика,принимает решение и т.д.
Много лишних этапов,это моя точка зрения.
Код:
     For n = 1 To 3
         ss = ss & X(n, 1) & "," & Replace(X(n, 2), ",", ".") & vbCrLf
      Next
Спасибо, лишние этапы уйдут сами собой, когда полностью на VBA напишу роботину, да и этапы не столь велики. На qpile стакан дольше просчитать.
Kalikazandr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Икак правильно заменить в ComboBox Change на MouseDown Rise13 Microsoft Office Excel 3 09.12.2011 14:36
как правильно обработать событие в cxGrid, в ячейке с CheckBox ? $T@LKER Компоненты Delphi 0 26.08.2010 23:46
Как правильно вставить строки? Kostinok Microsoft Office Excel 6 28.05.2010 19:23
Как правильно вставить js скрипт с фенкцией jumpto Oliany JavaScript, Ajax 1 07.09.2007 11:00