Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Приравнивание части массива другому массиву без цикла
 
Цитата
vikttur написал:  ...показать пример...
так ответ уже получен в №6. И за него я поблагодарил.

Вопрос закрыт.
Приравнивание части массива другому массиву без цикла
 
Цитата
Юрий М написал:
А дальше работайте именно с этим массивом - перекладывайте из получившего массива во второй
так я как раз и спрашивал о том, как ПЕРЕКЛАДЫВАТЬ? как загрузить все в массив однократно я знаю.
Приравнивание части массива другому массиву без цикла
 
Цитата
Юрий М написал:
Да кто же Вам предлагает работать с листом?
так в№2 именно для расчета среднего выборка выбирается в массив. И повторять это действие придется для каждого из значений в столбце.
именно что медленно. потому я и хотел все забрать в массив, а из него выборку подмассива для расчета среднего делать.
надо будет померить время но подозреваю, что вариант с .index не будет ощутимо быстрее чем занесение в цикле по-элементно в выборку элементов из массива
Приравнивание части массива другому массиву без цикла
 
Цитата
Юрий М написал: вариант, предложенный  Sanja  в #2 - это самый быстрый способ забрать данные с листа в массив и больше к листу не обращаться,
я именно этим способом и забираю с листа в исходный массив все данные. а потом скольжу по нему выборкой для расчета среднего геометрического.
похоже, что придется именно что выбирать с листа выборку а не заносить сразу весь массив в память
Приравнивание части массива другому массиву без цикла
 
Цитата
vikttur написал: Если разовая операция, зачем массив?
я эту операцию делаю для КАЖДОГО элемента исходного массива, причем размерность расчета средного геометрического тоже динамически меняется.
Цитата
Slicing an Array Without LoopThnx!
похоже, этот вариант скорости относительно выборки прямо с листа мне не добавит. Но все равно спасибо за ответ на мучивший меня вопрос!
Приравнивание части массива другому массиву без цикла
 
Цитата
Sanja написал:
Slicing an Array Without Loop
Thnx! я именно и пытался это сформулировать
Приравнивание части массива другому массиву без цикла
 
Измерял время.
возможно, можно ускорить если ПРАВИЛЬНО обращаться к листу, отключая расчет формул и обновления,
наверное, можно пойти и по такому пути.
я однократно заношу в массив данные из столбца и пытаюсь работать с ним, записывая на лист лишь результат расчетов.
так есть возможность массив части другого массива приравнять не лазая на лист или это не реализовать кроме как циклом по элементно?
Приравнивание части массива другому массиву без цикла
 
Цитата
Sanja написал:
arrayMy = Range("A1:A100").Value
Спасибо.
Но так очень медленно работает, я весь столбец заношу в одномерный массив MyArray,
и вопрос в том, чтобы не лазая на лист часть этого массива заносить в arrayMy
Приравнивание части массива другому массиву без цикла
 
собственно на листе есть столбец чисел.

мне нужно скользящее среднее геометрическое по этим числам.
чтобы воспользоваться встроенной функцией
Код
Application.WorksheetFunction.GeoMean(arrayMy) 

я в цикле заношу в массив  arrayMy числа из столбца.

А хотелось бы как-то так:
Код
redim arrayMy(1 to iMax)
arrayMy=MyArray(i..i+iMax)

Как правильно это записать?
Возможно ли изменить диаграмму не активируя книги?
 
Спасибо. Проверил, действительно работает
Код
Workbooks("rez.xlsx").Sheets("ttt").ChartObjects("Диаграмма 1").Chart.SetSourceData Source:=Workbooks("rez.xlsx").Sheets("ttt").Range("$N$1:$P$14")
Возможно ли изменить диаграмму не активируя книги?
 
макрорекордер записывает:
Код
    ActiveSheet.ChartObjects("Диаграмма 1").Activate
    ActiveChart.SetSourceData Source:=Range("ttt!$N$1:$P$15")
я пытаюсь сделать это не выделяя конкретного листа и книги:
Код
    Workbooks("rez.xlsx").Sheets("ttt").ChartObjects("Диаграмма 1").Chart.SetSourceData Source:=Range("ttt!$N$1:$P$14")

если активирована та же книга, код работает. А как его изменить чтобы можно было изменить диаграмму, находясь в другой книге?

Изменено: andre_bae - 05.11.2017 16:08:10
запуск процедуры с параметрами
 
Спасибо.
Вариант с глобальной переменной я как раз и хотел обойти для лучшей читаемости кода.
запуск процедуры с параметрами
 
Извините за глупый вопрос, но как запустить процедуру с параметрами?
Как правильно написать команду?
У меня ни
Код
Application.OnTime  times1, "test(param)", , true

ни
Код
Application.OnTime  times1, "test, param", , true

не получается. говорит что нет такой процедуры
как связать checkbox с ячейкой в фоне?
 
Цитата
vikttur написал:
Может быть, банально: "большая программа с погрузками по DDE" не просто подставляет данные - полностью вставляет диапазоны, заменяя исходные?
нет-нет, на тот лист, где стоят чекбоксы ничего не подгружается по DDE.
а к чекбоксам и связанным с ними ячейкам вообще никто не обращается на изменение.
чекбоксы используются в формулах которпрые арифметически высчитывают содержание других ячеек.

да, "слетают" связи чекбоксов с сячейками как правило в комплекте со сбрасыванием стиля ссылок с заданного мной R1C1
(короче, если при запуске экселя я  в верхней строке вместо A B C D ... вижу 1 2 3 4 ... - наверняка и чекбоксы потеряли связи.)
как связать checkbox с ячейкой в фоне?
 
О, в результате в исходную строчку оказалось нужно было просто добавить DrawingObject
и все заработало!

Код
Workbooks("b1.xlsm").Sheets("f").Shapes("CheckBox 6").DrawingObject.LinkrdSell = "$D$8"
Изменено: andre_bae - 03.02.2016 13:00:26
как связать checkbox с ячейкой в фоне?
 
.LinkrdSell = "$D$8"
Цитата
Юрий М написал: Без активации листа...
О!, спасибо.
Я чуть изменил, вроде работает. Так ведь тоже правильно?
Код
 With  Sheets("Лист1").Shapes("Check Box 1").DrawingObject         
    .Value = False         
    .LinkedCell ="$D$8"     
End With
как связать checkbox с ячейкой в фоне?
 
Цитата
vikttur написал: Не разобравшись в причине, рискуете и в дальшейшем напороться на ту же ошибку.
да, я понимаю.
и разбираться буду.
но понимаю, что это будет не просто, а программе надо работать уже сейчас.
так что это паллиатив, но ОСОЗНАННЫЙ ))
как связать checkbox с ячейкой в фоне?
 
Цитата
Влад написал: Workbooks("b1.xlsm").Sheets("f").CheckBoxes("CheckBox 6").LinkedSell = "$D$8"
именно так я и написал в исходном вопросе.
Эксель ТАКОЕ не "кушает"
как связать checkbox с ячейкой в фоне?
 
я руками набивал с экрана соседнего компа. извините за опечатку
как связать checkbox с ячейкой в фоне?
 
Цитата
andre_bae написал: переустановка экселя не выход - проверял
та же проблема на ДРУГОМ компьтюре с другой версией экселя.
там большая программа с погрузками по DDE и проч. причину ошибки искать сложно.
я вышел из положения ПОКА использовав код, который дает автоматическая запись макроса, но спрашиваю о том, есть ли вариант упростить этот код и чтобы он не перехватывал фокус, а выполнялся "в фоне"?
как связать checkbox с ячейкой в фоне?
 
ага. "здесь всю систему менять надо" (с)
но на свержение президента я пока не готов.
разбирать с причиной возникновения этой проблемы - долго и сложно. переустановка экселя не выход - проверял, там ошибка в чем-то другом.

а если по сути вопроса - есть ли ответ на мой вопрос не из серии "поменять прокладку между стулом и экселем"?
как связать checkbox с ячейкой в фоне?
 
Проблема в том, что ексель периодически "забывает" связь чекбоксов с ячейками.
Пытаюсь решить эту проблему прописыванием связей макросом при запуске книги.
как связать checkbox с ячейкой в фоне?
 
Если записать макросом, то он делает так:
Код
Workbooks("b1.xlsm").Activate 
Sheets("f").Select

ActiveSheet.Shapes("CheckBox 6").Select
       With selection
         .Value - xlOff
         .LinkrdSell = "$D$8"
     End With
Хочется обойтись без конструкции With и делать все это в фоне, не активируя листа и книги.
Однако попытка сделать это "в лоб" не удается:
Код
Workbooks("b1.xlsm").Sheets("f").Shapes("CheckBox 6").LinkrdSell = "$D$8"
выдает ошибку.
Как исправить?
как изменить формат ячеек по умолчанию?, периодически случайные ячейки меняют свой формат на временной. как избавиться?
 
Переформулирую вопрос.
Макросов, конкретно в этих ячейках что-то меняющих, в проекте нет. Максимум, что меняется - в некоторых ячейках меняются значения извне по DDE.
Подозреваю, что изменения формата ячеек происходят при каких-то сбоях в работе.
Такое может быть? Как это выявить и зафиксировать формат?
Не прописывать же формат нескольких сотен диапазонов раз в минуту макросом по таймеру...
как изменить формат ячеек по умолчанию?, периодически случайные ячейки меняют свой формат на временной. как избавиться?
 
Цитата
AlexTM написал:
макрос
Понял куда меня послали. Спасибо. Покопаюсь, благо макросов там куча.
Смущает 2 момента:
1. часть ячеек, теряющих свой формат, хоть и используется макросами, но ТОЛЬКО для чтения.
2. целый лист, на котором часто происходят также замены форматов ячеек, вообще модифицируется только внешним источником по DDE. Насколько я понимаю, этот транспорт ведь не может менять формат ячеек а лишь их значение, ведь так?

Или я все же не до конца въехал в столь емкий и краткий совет? Тогда разжуйте чуть подробнее, плизз.
Изменено: andre_bae - 17.11.2015 17:12:11
как изменить формат ячеек по умолчанию?, периодически случайные ячейки меняют свой формат на временной. как избавиться?
 
Периодически обнаруживаю то в одном то в другом из файлов экселя, с которыми работаю, что произвольные ячейки (каждый раз разные) неожиданно меняют свой формат на временной.
Мне это очень неудобно, так как большинство ячеек отформатировано в соответствии с теми данными которые в них хранятся и это как правило не время.
Excel2007, если  это важно.

Подозреваю, что где-то есть место где задается формат ячеек по умолчанию.
Так что вопроса фактически два:
1. где найти такое место? (папочка XLSTART у меня пуста)
2. может есть информация что может вызывать принудительную замену формата ячеек, формат которых задан вручную и многократно сохранялся в файле?
Изменено: andre_bae - 17.11.2015 17:11:01
Как убрать лишнее поле на листе
 
Извините, если обидел. И в мыслях не держал.
Просто стараюсь все непонятки разбирать до конца.
Чтобы не приходилось при каждом непонятном случае все сносить, переустанавливать операционную систему и создавать проект с нуля,
а *понять* что именно пошло неправильно и исправить лишь конкретную ошибку...

Сам я, как Вы могли заметить, прежде чем повторно написать в эту тему, неделю пытался найти решение этой загадки,
и лишь отчаявшись, решился попросить помощи знатоков.
Еще раз простите, если обидел.
Как убрать лишнее поле на листе
 
Цитата
JayBhagavan написал: Сохранил как xls - помогло.
Ну, это не спортивно.
Так-то можно просто создать новый лист и туда все перенести, а этот удалить.
Хочется разобраться, где там в недрах excel эта группировка окопалась :qstn:
Как убрать лишнее поле на листе
 
В дополнение к исходному вопросу:
Структуру удалил, серое поле пропало. Сохранил файл.
...
Когда снова файл открываю - на этом листе снова появляется это поле.
В файле никаких макросов нет...
Но сколько не удалял структуру сохраняя файл - при открытии его на этом листе снова вылезает окно структуры группировки.
Столбцы вроде сгруппированы после AQ. Выделяю весь лист. Последовательно разгруппировываю все 8 группировок и затем структуру. Сохраняю.Запускаю - все по прежнему.
Что делать?

UPD:
удалил все другие листы.
Удалил все данные с этого листа.
Переименовал этот лист.
ни-че-го не помогло. может, святой водой окропить?  :oops:
Файл прилагаю
Изменено: andre_bae - 09.09.2015 23:12:05
Как убрать лишнее поле на листе
 
спасибо.
удалил структуру.
Страницы: 1 2 3 След.
Наверх