Страницы: 1 2 След.
RSS
Запись формулчыы массива в макрос
 
Доброго дня ребята!  
Запись формулчыы массива в макрос  
На листе Ексель Имеется вот такая вот формула:  
=ЕСЛИ(ЕНД(ИНДЕКС(КарткаОбліку!$AZ10:$AZ25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0))&" л.");"";ИНДЕКС(КарткаОбліку!$AZ10:$AZ25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0))&" л.")  
 
Записываю ее в макрос вот в таком виде :  
"=IF(ISNA(INDEX(КарткаОбліку!R[5]C52:R[20]C52,MATCH(R1C4&R7C,КарткаОбліку!R[5]C2:R[20]C2&КарткаОбліку!R[5]C7:R[20]C7,0))&""л""),"""",INDEX(КарткаОбліку!R[5]C52:R[20]C52,MATCH(R1C4&R7C,КарткаОбліку!R[5]C2:R[20]C2&КарткаОбліку!R[5]C7:R[20]C7,0))&""л"")"
Но, при запуске макроса  восстановления формул на листе , Ексель записывет ее в соответствующую ячейку, как обычную. В результате в ячейке получаю #ЗНАЧ!  
Что нужно добавить, чтобы формула восстанавливаласть в ячейке, как массивная?  
С ув. Муля!
 
[a1].formulaarray=...
Я сам - дурнее всякого примера! ...
 
Сергей огромадное СПАААСИБООО!  
С ув. Муля!
 
Спецы!  
Целый день мучаюсь и не получается. Гляньте пожалуйста!!! Вроди все сделал по науке, а ВБА почему то не принимает эти формулы. Красит то желтым, то красным цветом.  
 
:Первая формула :  
=ЕСЛИ(ЕНД(ОКРУГЛ(ИНДЕКС(КарткаОбліку!$AL10:$AL25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0));2)&" л.");"";ОКРУГЛ(ИНДЕКС(КарткаОбліку!$AL10:$AL25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0));2)&" л.")  
 
Range("F6").FormulaArray = "=IF(ISNA(ROUND(INDEX(КарткаОбліку!R[4]C38:R[19]C38,MATCH(R1C4&R7C,КарткаОбліку!R[4]C2:R[19]C2&КарткаОбліку!R[4]C7:R[19]C7,0)),2)&"" л.""),"""",ROUND(INDEX(КарткаОбліку!R[4]C38:R[19]C38,MATCH(R1C4&R7C,КарткаОбліку!R[4]C2:R[19]C2&КарткаОбліку!R[4]C7:R[19]C7,0)),2)&"" л."")"
     
Вторая формула:  
=ЕСЛИ(ЕНД(ОКРУГЛ(ИНДЕКС(КарткаОбліку!$BA10:$BA25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0));2)&" грн.");"";ОКРУГЛ(ИНДЕКС(КарткаОбліку!$BA10:$BA25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0));2)&" грн.")  
 
Range("G5").FormulaArray = "=IF(ISNA(ROUND(INDEX(КарткаОбліку!R[5]C53:R[20]C53,MATCH(R1C4&R7C[-1],КарткаОбліку!R[5]C2:R[20]C2&КарткаОбліку!R[5]C7:R[20]C7,0)),2)&"" грн.""),"""",ROUND(INDEX(КарткаОбліку!R[5]C53:R[20]C53,MATCH(R1C4&R7C[-1],КарткаОбліку!R[5]C2:R[20]C2&КарткаОбліку!R[5]C7:R[20]C7,0)),2)&"" грн."")"
     
Третья формула:  
=ЕСЛИ(ЕНД(ОКРУГЛ(ИНДЕКС(КарткаОбліку!$BB10:$BB25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0));2)&" грн.");"";ОКРУГЛ(ИНДЕКС(КарткаОбліку!$BB10:$BB25;ПОИСКПОЗ($D$1&F$7;КарткаОбліку!$B10:$B25&КарткаОбліку!$G10:$G25;0));2)&" грн.")  
 
'Range("I6").FormulaArray = "=IF(ISNA(ROUND(INDEX(КарткаОбліку!R[4]C54:R[19]C54,MATCH(R1C4&R7C[-3],КарткаОбліку!R[4]C2:R[19]C2&КарткаОбліку!R[4]C7:R[19]C7,0)),2)&"" грн.""),"""",ROUND(INDEX(КарткаОбліку!R[4]C54:R[19]C54,MATCH(R1C4&R7C[-3],КарткаОбліку!R[4]C2:R[19]C2&КарткаОбліку!R[4]C7:R[19]C7,0)),2)&"" грн."")"
 
Вск формулы массива.  
С ув. Муля!
 
а вот так с ходу... попробуйте поставить пробел до & и после этого символа
 
{quote}{login=I Sergey}{date=10.10.2011 11:37}{thema=}{post}а вот так с ходу... попробуйте поставить пробел до & и после этого символа{/post}{/quote}  
Сделал, не заработали. Красит всю строку в желтый цвет.  
С ув. Муля!
 
И что наверное важно.  
Когда вот в этом выражении : Range("F6").FormulaArray, убираю слово Array, макрос работает. Но восстанавливает обычные формулы, а не масивные.То есть, выдает #ЗНАЧ!
 
похоже у вас проблема в том, что vba не понимает по каким диапазонам работать формулам.  
как вариант конструкция вида    
Лист1.select    
позволила решить проблему
 
{quote}{login=I Sergey}{date=11.10.2011 09:51}{thema=}{post}похоже у вас проблема в том, что vba не понимает по каким диапазонам работать формулам.  
как вариант конструкция вида    
Лист1.select    
позволила решить проблему{/post}{/quote}  
 
Доброго дня всем!  
Доброго дня вам Сергей!  
А вот здесь : Лист1.select    
, я уже туплю. Если не трудно, покажите на примере, который прилагаю.  
С укв. Муля!
 
{quote}{login=}{date=11.10.2011 01:35}{thema=Re:    
Доброго дня всем!  
Доброго дня вам Сергей!  
А вот здесь : Лист1.select    
, я уже туплю. Если не трудно, покажите на примере, который прилагаю.  
С укв. Муля!{/post}{/quote}  
 
на примере до вечера не покажу, на работе только 2003.  
возможно, вы пытаетесь вставить формулу в неактивный лист, т.о. код вида  
ПОИСКПОЗ($D$1&F$7 не знает на что ссылаться  
 
под Лист1.select подрузамевается выбрать лист, на который вводите свою формулу.  
если это выделение вам ни к чему, попробовать (сам не пробовал) указать у каждого диапазона принадлежность к нужному вам листу.
 
{quote}{login=I Sergey}{date=11.10.2011 02:05}{thema=Re: Re: }{post}{quote}{login=}{date=11.10.2011 01:35}{thema=Re:    
Доброго дня всем!  
Доброго дня вам Сергей!  
А вот здесь : Лист1.select    
, я уже туплю. Если не трудно, покажите на примере, который прилагаю.  
С укв. Муля!{/post}{/quote}  
 
на примере до вечера не покажу, на работе только 2003.  
возможно, вы пытаетесь вставить формулу в неактивный лист, т.о. код вида  
ПОИСКПОЗ($D$1&F$7 не знает на что ссылаться  
 
под Лист1.select подрузамевается выбрать лист, на который вводите свою формулу.  
если это выделение вам ни к чему, попробовать (сам не пробовал) указать у каждого диапазона принадлежность к нужному вам листу.{/post}{/quote}  
Так у меня тоже 2003
 
извиняюсь)) подумал у вас не архив а .xlsx  
 
Ваш пример заработал когда переименовал КарткаОбліку в Лист2.  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
но и указать точно к чему принадлежат диапазоны тоже не повредит
 
Сергей!  
С некоторрых пор файлы стали удалять анонимы. Повторите рпожалуйста сам файл примера в в уменьшеном размере!! Например, можно удалить лист СпискиП
 
держите  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
{quote}{login=Муля}{date=11.10.2011 03:41}{thema=}{post}Сергей! С некоторрых пор файлы стали удалять анонимы. {/post}{/quote}Муля, что Вы говорите ерунду? Почему анонимы? Читайте внимательно тест, выделенный красным.
 
I Sergey, Вы с Правилами нашего Форума ознакомились?
 
какое именно Вы сейчас имеете в ввиду?
 
если Вы про 100к то приношу извинения, отправил на автомате, не подрасчетал.
 
Что значит "не подрасчетал"? Предыдущий файл был удалён с указанием причины.  
Обычно темы с повторным нарушение я закрываю, но в данном случае пострадает Муля, у которого анонимы удаляют файлы.
 
:-)
Я сам - дурнее всякого примера! ...
 
Юрий М. Дай сенсей. мы больше не подведем.  
 
Муля. меняйте название листа и будет вам счастье.
 
Муля, если не секрет, зачем такие сложности. Формулы макросом, заинтриговали ...
 
На українській мові попередньо сказане , можна оцінити приблизно так.    
Говорила балакала - сіла й заплакала!!!  
Ведь о главном то забыли!!!Вопрос остался не решенным.  
 
Ув. VovaK!  
Конечно же не секрет. Все это нужнро для восстановления случайно удаленных формул пеаряшливым пользователем. Вместо защиты ячеек.  
Всех вам благ, Муля!
 
{quote}{login=Муля}{date=11.10.2011 11:11}{thema=}{post}  
Ведь о главном то забыли!!!Вопрос остался не решенным.  
{/post}{/quote}  
 
и это не помогло?  
{post}Муля. меняйте название листа и будет вам счастье.{/post}?    
 
ну, с третьей попытки....выкладываем  
что бы ваш файл уменьшился с 1,3Мб до 64кб был очищен формат ячеек. ну, как говориться, на ходовые качества макроса не влияет.
 
это к последнему
 
Всем доброго дня!  
ДЛя начала. Сергей! Нет счастья!!! не работает и ваш файл.ПРичем, в ячейках формула отображается с фигурными скобками, а результат - пустые ячейки.  
И еще. Перед восстановлением, то есть запуском макроса, формулы работали нормально.  
А во вторых, менять название листа менять нельзя, поскольку в рабочем файле на него ссылаются другие формулы и макросмы.  
С ув. Муля!
 
И вам Доброго дня.  
 
"ДЛя начала. Сергей! Нет счастья!!! не работает и ваш файл.ПРичем, в ячейках формула отображается с фигурными скобками, а результат - пустые ячейки."  
 
Так вопрос то стоял в том что "не почему у вас пустые ячейки", а    
"Красит то желтым, то красным цветом."    
 
А по содержанию, вы сравните что вам вставляет макрос уже на русском с тем что вы от него хотите, похоже у вас RC напутаны
 
А по содержанию, вы сравните что вам вставляет макрос уже на русском с тем что вы от него хотите, похоже у вас RC напутаны{/post}{/quote}  
Сравнил. Точно после восстановления выдает другие параметры РС.  
Я их ввожу таким образом.  
Меняю стилм в параметрах и копирую формулу с РС-ами. А потом только меняю значки и английские названия формул.  
Попытался записать макрос: F2 + три клавиши + остановить запись. Выдает сообщение о том, что не может записать макрос.  
Сергей. А вы не знаете другую, не массивную формулу, которая делала бы то же самое.
 
Муля, хотел бы услышать Ваш комментарий по поводу злодеев-анонимов, которые удаляют файлы.
Страницы: 1 2 След.
Читают тему
Наверх