![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.05.2010
Сообщений: 18
|
![]()
Помогите разобраться!
Из одной ячейки в другую нужно постоянно копировать данные. Есть только одно условие если в (ячейке 1) = #Н/Д то ничего не делать а оставить старые данные. Я написал макрос. Sub b1() Лист15.Activate Лист15.Range("G28").Value=IIf(Лист1 5.Range("H28").Taxt="#Н/Д",Лист15.Range("G28").Value,Лист15 .Range("H28").Value ) Работает так как нужно НО! чтобы макрос сработал нужно давить на кнопук RUN. Как сделать чтоб при открытой книге данные менялись в реальном времени сами? Заранее всем большое спасибо. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.03.2010
Сообщений: 417
|
![]()
запишите этот код в событиея:
Workbook_Open() и Worksheet_Change(ByVal Target As Range) |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.05.2010
Сообщений: 18
|
![]()
Что то не работает-- выдает ошибку компиляции.
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
А как вы написали? Бросьте весь код сюда
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 24.05.2010
Сообщений: 18
|
![]()
В коде ("ЭтаКнига") У меня запускается несколько "Modules"
Private Sub Workbook_Open() Day //запускается раз в день Hour//запускается раз в час Application.WindowsState=xlMinimize d// скинуть Excel вниз Worksheet_Change(ByVal Target As Range) --так записать недает вообще Worksheet_Change(ByVal Target )As Range -при такой записи при нажатии Enter сам переписывает запись и неправильно компилируется. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
Короче, после вызова редактора VBA (Alt+F11) вы должны выбрать, нажав "ЭтаКнига", в первом комбобоксе справа Workbook. Автоматически вставится код для Open. Внутрь него и вставляйте код макроса, но следите, чтобы был только код, а не Sub и End Sub.
В правом комбобоксе можно выбрать и другие события. Автоматически создастся код для них, куда и нужно вставить будет ваш код. Это же можно сделать и для отдельного листа, нажав слева на нужный лист Кроме того, в вашем коде я не вижу конца процедуры. Есть только начало, а где End Sub?? |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]() Цитата:
2. Т.к. в Вашей ячейке возможно #Н/Д, то, следовательно ячейка содержит формулу. Поэтому, для этой ячейки событие Worksheet_Change возникать не будет. 3. Можно использовать событие Worksheet_Calculate, но при большом количестве формул на листе, Excel будет "тормозить". 4. Какая формула содержится в контролируемой ячейке? Много ли влияющих ячеек она содержит?
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 31.05.2010 в 10:52. |
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов процедуры. | Leo20 | Общие вопросы Delphi | 11 | 23.11.2009 16:30 |
Простой пример вызов DLL из макроса Excel | Averinsergey | Общие вопросы Delphi | 2 | 05.05.2009 23:12 |
Запуск макроса с параметрами из другого макроса | Saladin | Microsoft Office Excel | 2 | 19.01.2009 09:43 |
Вызов процедуры | igbizon | Общие вопросы Delphi | 5 | 02.09.2008 10:44 |
вызов | Iceman | Софт | 7 | 24.02.2008 07:30 |