Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Перенести данные с Табл1 в Табл2 по условию - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: _Boroda_, китин  
Перенести данные с Табл1 в Табл2 по условию
VladimirSK777 Дата: Воскресенье, 13.05.2018, 16:29 | Сообщение № 41
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
БЛАГОДАРЮ, все изучу. Я Ваш должник.
 
Ответить
СообщениеБЛАГОДАРЮ, все изучу. Я Ваш должник.

Автор - VladimirSK777
Дата добавления - 13.05.2018 в 16:29
VladimirSK777 Дата: Понедельник, 14.05.2018, 09:37 | Сообщение № 42
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
Gustav, БОЛЬШОЕ ВАМ ЧЕЛОВЕЧЕСКОЕ СПАСИБО, ПОЛУЧИЛОСЬ ВСЕ ПРОСТО СУПЕР!!! hands clap respect
Мэппинг понравился, все понятно и дает возможность подредактировать в случае что-то не так (уже добавил столбец в таблицу, подправил меппинг и все работает), это просто КРУТО, я в восторге.

Но у меня осталось пара вопросов я так и не понял 2 момента:
1 что имеется ввиду в этой строке https://prnt.sc/jhjijo зачем она нужна и что туда вносить
2 так и не понял как работать с этим блоком http://prntscr.com/jhjl9v , если все оставить как есть - заполнять начинает с 4 строки, т.е. одну (3) пропускает. если удалить значение в ячейке AS3 по не считает столбец АТ. В обход этого всего дела создал еще один столбец теперь ЛВ выглядит так http://prntscr.com/jhjmrn настроил синхронизацию между таблицами результат меня устраивает.

)) и на сегодня последний вопрос скорость работы скрипта зависит от мощности компа и скорости интернета?

Прошу сообщите мне или тут или в личку номер вашего кошелька, я при возможности обязательно Вас отблагодарю.
 
Ответить
СообщениеGustav, БОЛЬШОЕ ВАМ ЧЕЛОВЕЧЕСКОЕ СПАСИБО, ПОЛУЧИЛОСЬ ВСЕ ПРОСТО СУПЕР!!! hands clap respect
Мэппинг понравился, все понятно и дает возможность подредактировать в случае что-то не так (уже добавил столбец в таблицу, подправил меппинг и все работает), это просто КРУТО, я в восторге.

Но у меня осталось пара вопросов я так и не понял 2 момента:
1 что имеется ввиду в этой строке https://prnt.sc/jhjijo зачем она нужна и что туда вносить
2 так и не понял как работать с этим блоком http://prntscr.com/jhjl9v , если все оставить как есть - заполнять начинает с 4 строки, т.е. одну (3) пропускает. если удалить значение в ячейке AS3 по не считает столбец АТ. В обход этого всего дела создал еще один столбец теперь ЛВ выглядит так http://prntscr.com/jhjmrn настроил синхронизацию между таблицами результат меня устраивает.

)) и на сегодня последний вопрос скорость работы скрипта зависит от мощности компа и скорости интернета?

Прошу сообщите мне или тут или в личку номер вашего кошелька, я при возможности обязательно Вас отблагодарю.

Автор - VladimirSK777
Дата добавления - 14.05.2018 в 09:37
Gustav Дата: Понедельник, 14.05.2018, 13:38 | Сообщение № 43
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
1 что имеется ввиду в этой строке https://prnt.sc/jhjijo зачем она нужна и что туда вносить

Ничего не надо в нее вносить. Эта строка кода закомментирована (// в начале). Ее можно даже безболезненно удалить. Id таблицы 2 нужно прописать строкой выше и всё.

2 так и не понял как работать с этим блоком http://prntscr.com/jhjl9v , если все оставить как есть - заполнять начинает с 4 строки, т.е. одну (3) пропускает. если удалить значение в ячейке AS3 по не считает столбец АТ.

Формула в AS3 нужна, удалять ее не стОит, она имеет следующий вид:
[vba]
Код
=MAX(3; ArrayFormula(ROW(AR3:AR)*NOT(ISBLANK(AR3:AR))))
[/vba]
и по замыслу вычисляет номер последней занятой строки в колонке RecId (AR). Зачем нужен этот номер? Чтобы "продлить" вниз действие формулы массива, введенной в единственную ячейку колонки AT - AT3:
[vba]
Код
=ArrayFormula(IF(I3:INDEX(I:I;AS3)="П"; 1;IF(I3:INDEX(I:I;AS3)="Н";0;0)))
[/vba]
Для сравнения - раньше у Вас там была простая формула, которую нужно было постоянно копировать вниз по мере добавления новых записей:
[vba]
Код
=IF(I3="П"; 1;IF(I3="Н";0;0))
[/vba]
Моя же не требует такого копирования/протягивания и "расширяется" автоматически по мере появления новых значений в колонке RecId. Попробуйте подобавлять числа ниже последней строки в колонке AR - в колонке AS в той же строке появится очередной "нолик".

скорость работы скрипта зависит от мощности компа и скорости интернета?

Не знаю. Не думаю. Скрипт, вроде, выполняется на сервере, поэтому от вашего железа и сетки вряд ли зависит...


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
1 что имеется ввиду в этой строке https://prnt.sc/jhjijo зачем она нужна и что туда вносить

Ничего не надо в нее вносить. Эта строка кода закомментирована (// в начале). Ее можно даже безболезненно удалить. Id таблицы 2 нужно прописать строкой выше и всё.

2 так и не понял как работать с этим блоком http://prntscr.com/jhjl9v , если все оставить как есть - заполнять начинает с 4 строки, т.е. одну (3) пропускает. если удалить значение в ячейке AS3 по не считает столбец АТ.

Формула в AS3 нужна, удалять ее не стОит, она имеет следующий вид:
[vba]
Код
=MAX(3; ArrayFormula(ROW(AR3:AR)*NOT(ISBLANK(AR3:AR))))
[/vba]
и по замыслу вычисляет номер последней занятой строки в колонке RecId (AR). Зачем нужен этот номер? Чтобы "продлить" вниз действие формулы массива, введенной в единственную ячейку колонки AT - AT3:
[vba]
Код
=ArrayFormula(IF(I3:INDEX(I:I;AS3)="П"; 1;IF(I3:INDEX(I:I;AS3)="Н";0;0)))
[/vba]
Для сравнения - раньше у Вас там была простая формула, которую нужно было постоянно копировать вниз по мере добавления новых записей:
[vba]
Код
=IF(I3="П"; 1;IF(I3="Н";0;0))
[/vba]
Моя же не требует такого копирования/протягивания и "расширяется" автоматически по мере появления новых значений в колонке RecId. Попробуйте подобавлять числа ниже последней строки в колонке AR - в колонке AS в той же строке появится очередной "нолик".

скорость работы скрипта зависит от мощности компа и скорости интернета?

Не знаю. Не думаю. Скрипт, вроде, выполняется на сервере, поэтому от вашего железа и сетки вряд ли зависит...

Автор - Gustav
Дата добавления - 14.05.2018 в 13:38
VladimirSK777 Дата: Пятница, 18.05.2018, 19:12 | Сообщение № 44
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
Уважаемый Gustav, у меня вопрос скрипт переписывает полностью строку когда происходит синхронизация, можно ли исключить с этой строки определенный столбец, чтобы он не менялся при синхронизации? Задумка в чем сделать так чтобы когда партнер (менеджер) меняет значение дата изменения этой ячейки подтягивалась в соседнюю ячейку автоматом, для этого использую формулу =IF(C7<>0;NOW()) вроде все работает, но показывает дату синхронизации. и Еще если можно исключить этот столбец и не синхронизировать его, то прошу обьяснить как сделать формулу чтобы она автоматом продлевалась и не протягивать ее до конца документа, так как вы это сделали в таб 2.
 
Ответить
СообщениеУважаемый Gustav, у меня вопрос скрипт переписывает полностью строку когда происходит синхронизация, можно ли исключить с этой строки определенный столбец, чтобы он не менялся при синхронизации? Задумка в чем сделать так чтобы когда партнер (менеджер) меняет значение дата изменения этой ячейки подтягивалась в соседнюю ячейку автоматом, для этого использую формулу =IF(C7<>0;NOW()) вроде все работает, но показывает дату синхронизации. и Еще если можно исключить этот столбец и не синхронизировать его, то прошу обьяснить как сделать формулу чтобы она автоматом продлевалась и не протягивать ее до конца документа, так как вы это сделали в таб 2.

Автор - VladimirSK777
Дата добавления - 18.05.2018 в 19:12
VladimirSK777 Дата: Пятница, 18.05.2018, 19:21 | Сообщение № 45
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
также у меня вопрос по синхронизации и доступам я так понимаю что оставить менеджеру доступ только к своему листу в таб2 не получится т.к. тогда он не сможет проводить синхронизацию или копировать данные с таб1 в таб21?


Сообщение отредактировал VladimirSK777 - Пятница, 18.05.2018, 19:26
 
Ответить
Сообщениетакже у меня вопрос по синхронизации и доступам я так понимаю что оставить менеджеру доступ только к своему листу в таб2 не получится т.к. тогда он не сможет проводить синхронизацию или копировать данные с таб1 в таб21?

Автор - VladimirSK777
Дата добавления - 18.05.2018 в 19:21
Pelena Дата: Пятница, 18.05.2018, 19:38 | Сообщение № 46
Группа: Админы
Ранг: Местный житель
Сообщений: 19409
Репутация: 4558 ±
Замечаний: ±

Excel 365 & Mac Excel
также у меня вопрос по синхронизации и доступам

Не надо складывать все вопросы в одну тему. Читайте Правила форума


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
также у меня вопрос по синхронизации и доступам

Не надо складывать все вопросы в одну тему. Читайте Правила форума

Автор - Pelena
Дата добавления - 18.05.2018 в 19:38
VladimirSK777 Дата: Суббота, 19.05.2018, 05:59 | Сообщение № 47
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
Не надо складывать все вопросы в одну тему. Читайте Правила форума

так мы тут обсуждаем конкретное задание, работаем над 2 таблицами и эти вопросы касаются именно этих таблиц и этого задания
 
Ответить
Сообщение
Не надо складывать все вопросы в одну тему. Читайте Правила форума

так мы тут обсуждаем конкретное задание, работаем над 2 таблицами и эти вопросы касаются именно этих таблиц и этого задания

Автор - VladimirSK777
Дата добавления - 19.05.2018 в 05:59
Pelena Дата: Суббота, 19.05.2018, 07:07 | Сообщение № 48
Группа: Админы
Ранг: Местный житель
Сообщений: 19409
Репутация: 4558 ±
Замечаний: ±

Excel 365 & Mac Excel
Вопрос разграничения доступа не относится к теме "Перенести данные с Табл1 в Табл2 по условию". Для него следует создать отдельную тему


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВопрос разграничения доступа не относится к теме "Перенести данные с Табл1 в Табл2 по условию". Для него следует создать отдельную тему

Автор - Pelena
Дата добавления - 19.05.2018 в 07:07
Gustav Дата: Суббота, 19.05.2018, 21:21 | Сообщение № 49
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
скрипт переписывает полностью строку когда происходит синхронизация, можно ли исключить с этой строки определенный столбец, чтобы он не менялся при синхронизации?

Правые границы (колонки) данных синхронизации прописаны на листе Settings в Таблице 1. См. там блок "Common Parameters" (с ячейки P1) и далее параметры LastCol1 и LastCol2 - для Таблиц 1 и 2 соответственно. Всё, что правее этих колонок, не синхронизируется и может содержать формулы без боязни их перезаписи простыми значениями при синхронизации.

Как-то выключить из синхронизации ячейки в колонках левее LastCol1 и LastCol2 в текущей версии не получится. Это связано с тем, что анализ и изменение значений полей производится в копии строки в оперативной памяти. Если было изменение хотя бы одного поля, то это поле меняется в оперативной памяти, после чего вся строка записывается в таблицу одной операцией. Если в строке менялись несколько полей, то они так же сначала все изменяются в памяти, после чего вся строка также записывается в таблицу одной операцией.

Сохранение при синхронизации не целой строки разом, а отдельной ячейки - в принципе, возможно, но это подразумевает довольно трудоемкие доработки и замедление процесса в целом. И речь, конечно, пока может идти только о простых значениях. Сохранение от перезаписи еще и формул - как это сделать, мне пока вообще неочевидно и, если честно, даже думать неохота...

сделать так чтобы когда партнер (менеджер) меняет значение дата изменения этой ячейки подтягивалась в соседнюю ячейку автоматом, для этого использую формулу =IF(C7<>0;NOW())

Формула - ни о чем, потому что бесполезна. Функция NOW отображает текущее время (как будильник на тумбочке), поэтому если менеджер фактически внес изменение вчера, то сегодня будет видно, что он внес изменение сегодня, завтра - завтра и т.д. по мере пересчитывания формулы. Фиксация таймштампа изменений чего-либо обычно поручается скрипту, вызываемому из функции onEdit. Такой скрипт фиксирует время в момент исполнения и записывает это время в определенную ячейку как простое значение, в дальнейшем неизменное ни завтра, ни послезавтра. Примеров подобных таймштампов на нашем Форуме много (см. в разделе "Google Docs").


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
скрипт переписывает полностью строку когда происходит синхронизация, можно ли исключить с этой строки определенный столбец, чтобы он не менялся при синхронизации?

Правые границы (колонки) данных синхронизации прописаны на листе Settings в Таблице 1. См. там блок "Common Parameters" (с ячейки P1) и далее параметры LastCol1 и LastCol2 - для Таблиц 1 и 2 соответственно. Всё, что правее этих колонок, не синхронизируется и может содержать формулы без боязни их перезаписи простыми значениями при синхронизации.

Как-то выключить из синхронизации ячейки в колонках левее LastCol1 и LastCol2 в текущей версии не получится. Это связано с тем, что анализ и изменение значений полей производится в копии строки в оперативной памяти. Если было изменение хотя бы одного поля, то это поле меняется в оперативной памяти, после чего вся строка записывается в таблицу одной операцией. Если в строке менялись несколько полей, то они так же сначала все изменяются в памяти, после чего вся строка также записывается в таблицу одной операцией.

Сохранение при синхронизации не целой строки разом, а отдельной ячейки - в принципе, возможно, но это подразумевает довольно трудоемкие доработки и замедление процесса в целом. И речь, конечно, пока может идти только о простых значениях. Сохранение от перезаписи еще и формул - как это сделать, мне пока вообще неочевидно и, если честно, даже думать неохота...

сделать так чтобы когда партнер (менеджер) меняет значение дата изменения этой ячейки подтягивалась в соседнюю ячейку автоматом, для этого использую формулу =IF(C7<>0;NOW())

Формула - ни о чем, потому что бесполезна. Функция NOW отображает текущее время (как будильник на тумбочке), поэтому если менеджер фактически внес изменение вчера, то сегодня будет видно, что он внес изменение сегодня, завтра - завтра и т.д. по мере пересчитывания формулы. Фиксация таймштампа изменений чего-либо обычно поручается скрипту, вызываемому из функции onEdit. Такой скрипт фиксирует время в момент исполнения и записывает это время в определенную ячейку как простое значение, в дальнейшем неизменное ни завтра, ни послезавтра. Примеров подобных таймштампов на нашем Форуме много (см. в разделе "Google Docs").

Автор - Gustav
Дата добавления - 19.05.2018 в 21:21
VladimirSK777 Дата: Вторник, 22.05.2018, 09:47 | Сообщение № 50
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
Gustav, столкнулся с проблемой во время синхронизации не учитывается изменение цвета шрифта или ячейки. Допустим партер у себя изменил цвет шрифта этим он сделал отметку что клиент обработан, но при синхронизации это не отражается в другой таб. что нужно сделать чтобы исправить?
 
Ответить
СообщениеGustav, столкнулся с проблемой во время синхронизации не учитывается изменение цвета шрифта или ячейки. Допустим партер у себя изменил цвет шрифта этим он сделал отметку что клиент обработан, но при синхронизации это не отражается в другой таб. что нужно сделать чтобы исправить?

Автор - VladimirSK777
Дата добавления - 22.05.2018 в 09:47
Gustav Дата: Вторник, 22.05.2018, 15:20 | Сообщение № 51
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
не учитывается изменение цвета шрифта или ячейки... что нужно сделать чтобы исправить?

VladimirSK777, уже видел ранее Ваш одинокий вопрос на эту тему в соседнем топике: http://www.excelworld.ru/forum/23-38312-1 .
И поскольку вопрос фактически повторился, попробую кое-что объяснить.

В распоряжение разработчика скриптов есть три копирующих метода объекта Range:
[vba]
Код
copyTo
copyFormatToRange
copyValuesToRange
[/vba]Беда в том, что скопировать ими можно только внутри одного файла. Между файлами они не работают, во всяком случае пока. Возможно, в будущем Google что-то улучшит на эту тему.

В дополнение к этим комплексным методам есть серия методов, позволяющих работать с форматирующими свойствами по отдельности (ниже указаны методы set…, но есть и соответствующие get…):
[vba]
Код
setBackground
setBorder
setFontColor
setFontSize
setFontStyle
setFontWeight
setHorizontalAlignment
setNumberFormat
setTextDirection
setTextRotation
setVerticalAlignment
[/vba]и некоторые другие.

В дополнение к форматирующим свойствам, есть еще свойства значений:
[vba]
Код
setValue
setFormula
[/vba]

Вышеперечисленными методами можно читать значения свойств ячеек в одном файле (например, в Таблице 1) и применять к свойствам ячеек в другом файле (в Таблице 2). Текущая версия скриптов Таблицы 1 использует только одно свойство setValue. Т.е. при синхронизации анализируется и модифицируется только одно это свойство. Замечу, что даже при этом скрипты не выглядят совсем уж простыми.

Судя же по Вашим хотелкам, я потенциально вижу желание вдобавок к Value при синхронизации как-то оперировать еще и, как минимум, такими свойствами ячеек, как Background (цвет фона), FontColor (цвет шрифта), Formula. Соответственно, всю синхронизирующую оснастку надо теперь организовывать не для одного свойства, а, как минимум, для четырех. И аппетит-то приходит во время еды - завтра вам захочется ещё что-то добавить.

Сразу возникает вопрос. Сейчас определенная ячейка включается в синхронизацию только в случае изменения ее значения. Что будет при четырех свойствах? Они буду такими же равноправными участниками процесса, как Value? Т.е. возможна ли ситуация, когда, скажем, значение не изменилось, но изменился цвет шрифта - должна ли выполняться синхронизация или подождём пока изменится еще и Value (как "главное свойство") и тогда уже поменяем все остальные свойства?


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
не учитывается изменение цвета шрифта или ячейки... что нужно сделать чтобы исправить?

VladimirSK777, уже видел ранее Ваш одинокий вопрос на эту тему в соседнем топике: http://www.excelworld.ru/forum/23-38312-1 .
И поскольку вопрос фактически повторился, попробую кое-что объяснить.

В распоряжение разработчика скриптов есть три копирующих метода объекта Range:
[vba]
Код
copyTo
copyFormatToRange
copyValuesToRange
[/vba]Беда в том, что скопировать ими можно только внутри одного файла. Между файлами они не работают, во всяком случае пока. Возможно, в будущем Google что-то улучшит на эту тему.

В дополнение к этим комплексным методам есть серия методов, позволяющих работать с форматирующими свойствами по отдельности (ниже указаны методы set…, но есть и соответствующие get…):
[vba]
Код
setBackground
setBorder
setFontColor
setFontSize
setFontStyle
setFontWeight
setHorizontalAlignment
setNumberFormat
setTextDirection
setTextRotation
setVerticalAlignment
[/vba]и некоторые другие.

В дополнение к форматирующим свойствам, есть еще свойства значений:
[vba]
Код
setValue
setFormula
[/vba]

Вышеперечисленными методами можно читать значения свойств ячеек в одном файле (например, в Таблице 1) и применять к свойствам ячеек в другом файле (в Таблице 2). Текущая версия скриптов Таблицы 1 использует только одно свойство setValue. Т.е. при синхронизации анализируется и модифицируется только одно это свойство. Замечу, что даже при этом скрипты не выглядят совсем уж простыми.

Судя же по Вашим хотелкам, я потенциально вижу желание вдобавок к Value при синхронизации как-то оперировать еще и, как минимум, такими свойствами ячеек, как Background (цвет фона), FontColor (цвет шрифта), Formula. Соответственно, всю синхронизирующую оснастку надо теперь организовывать не для одного свойства, а, как минимум, для четырех. И аппетит-то приходит во время еды - завтра вам захочется ещё что-то добавить.

Сразу возникает вопрос. Сейчас определенная ячейка включается в синхронизацию только в случае изменения ее значения. Что будет при четырех свойствах? Они буду такими же равноправными участниками процесса, как Value? Т.е. возможна ли ситуация, когда, скажем, значение не изменилось, но изменился цвет шрифта - должна ли выполняться синхронизация или подождём пока изменится еще и Value (как "главное свойство") и тогда уже поменяем все остальные свойства?

Автор - Gustav
Дата добавления - 22.05.2018 в 15:20
Gustav Дата: Воскресенье, 27.05.2018, 21:25 | Сообщение № 52
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
VladimirSK777, свершилось! Выполнил некоторые преобразования кода скрита от 13.05.2018 (сообщение № 40). Теперь можно синхронизировать не только значения, но и некоторые другие свойства Range. Грубо говоря, теперь синхронизируемые свойства перечисляются в массиве:
[vba]
Код
var synchroProperties = ['Values','Backgrounds','FontColors', 'Notes'];
[/vba]
"Грубо" - потому что эти свойства нужно отредактировать еще в нескольких (немногих) местах программы. Но в целом идея теперь такова, что какие-то дополнительные свойства Range, еще не перечисленные в массиве выше, но упомянутые в предыдущем сообщении № 51, теперь можно при необходимости достаточно легко добавить в скрипт. И эти свойства будут синхронизироваться так же, как и значения Values!

Как видно из новых (помимо 'Values') значений в массиве synchroProperties, я добавил туда: цвет заливки ячейки, цвет шрифта и текст примечания. Надеюсь, Вам понравится.

Изменения внесены в код Таблицы 1 по ссылке в сообщении № 40. Если Вы уже обустроили свою боевую Таблицу 1, то всё, что Вам нужно - скопировать к себе обновленный текст моего скрипта Таблицы 1 из сообщения № 40. Для страховки лучше предварительно сохранить вашу старую версию скрипта в безопасном месте (например, в текстовом файле).


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеVladimirSK777, свершилось! Выполнил некоторые преобразования кода скрита от 13.05.2018 (сообщение № 40). Теперь можно синхронизировать не только значения, но и некоторые другие свойства Range. Грубо говоря, теперь синхронизируемые свойства перечисляются в массиве:
[vba]
Код
var synchroProperties = ['Values','Backgrounds','FontColors', 'Notes'];
[/vba]
"Грубо" - потому что эти свойства нужно отредактировать еще в нескольких (немногих) местах программы. Но в целом идея теперь такова, что какие-то дополнительные свойства Range, еще не перечисленные в массиве выше, но упомянутые в предыдущем сообщении № 51, теперь можно при необходимости достаточно легко добавить в скрипт. И эти свойства будут синхронизироваться так же, как и значения Values!

Как видно из новых (помимо 'Values') значений в массиве synchroProperties, я добавил туда: цвет заливки ячейки, цвет шрифта и текст примечания. Надеюсь, Вам понравится.

Изменения внесены в код Таблицы 1 по ссылке в сообщении № 40. Если Вы уже обустроили свою боевую Таблицу 1, то всё, что Вам нужно - скопировать к себе обновленный текст моего скрипта Таблицы 1 из сообщения № 40. Для страховки лучше предварительно сохранить вашу старую версию скрипта в безопасном месте (например, в текстовом файле).

Автор - Gustav
Дата добавления - 27.05.2018 в 21:25
VladimirSK777 Дата: Четверг, 07.06.2018, 00:23 | Сообщение № 53
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
Gustav, очень Вам благодарен, обязательно все изучу и протестирую, о результатах отпишусь. но в 2-х словах о проблеме с которой столкнулся в таб2 постоянно слетает формат даты т.е. я ее хочу чтобы был мес и день, а после синхронизации дописывает еще и год хотя в таб1 месяц и день но тоже формат даты иногда подставляет год скрин http://prntscr.com/jrtgwg


Сообщение отредактировал VladimirSK777 - Четверг, 07.06.2018, 01:29
 
Ответить
СообщениеGustav, очень Вам благодарен, обязательно все изучу и протестирую, о результатах отпишусь. но в 2-х словах о проблеме с которой столкнулся в таб2 постоянно слетает формат даты т.е. я ее хочу чтобы был мес и день, а после синхронизации дописывает еще и год хотя в таб1 месяц и день но тоже формат даты иногда подставляет год скрин http://prntscr.com/jrtgwg

Автор - VladimirSK777
Дата добавления - 07.06.2018 в 00:23
Gustav Дата: Среда, 13.06.2018, 19:55 | Сообщение № 54
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
в таб2 постоянно слетает формат даты

VladimirSK777, на самом деле, хороший вопрос задали! Позанимался им, почитал Сеть, выработал стратегию...

Вывод - даты из одного файла в другой через скрипт лучше всего передавать как обычное число (Number). Наверное, знаете (или узнаете сейчас), что если ввести в ячейку (Excel или Таблицы Google) сегодняшний день как дату 13.06.2018, а затем отформатировать ячейку как число, то получим в ней некоторое целое значение 43264 (кол-во дней от "нулевой" даты 30.12.1899). Вот подобным числом 43264 и нужно заменять дату при передаче через скрипт - чтобы не "ломался" настроенный формат колонки таблицы-приемника, а также не учитывались часовые пояса (возможно разные в источнике и приемнике).

Все эти особенности-подробности я добавил в соответствующие места скриптов. Надеюсь, это Вам поможет. Как и в прошлый раз, Вам нужно скопировать в свою Таблицу 1 обновленный код из Таблицы 1 по ссылке в сообщении № 40 нашего обсуждения (с исправлением id Таблицы 2 на свой).

Для быстрого "узелка на память" привожу здесь также некоторый фрагмент своего кода с характерными для этой темы операторами и комментариями:



МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
в таб2 постоянно слетает формат даты

VladimirSK777, на самом деле, хороший вопрос задали! Позанимался им, почитал Сеть, выработал стратегию...

Вывод - даты из одного файла в другой через скрипт лучше всего передавать как обычное число (Number). Наверное, знаете (или узнаете сейчас), что если ввести в ячейку (Excel или Таблицы Google) сегодняшний день как дату 13.06.2018, а затем отформатировать ячейку как число, то получим в ней некоторое целое значение 43264 (кол-во дней от "нулевой" даты 30.12.1899). Вот подобным числом 43264 и нужно заменять дату при передаче через скрипт - чтобы не "ломался" настроенный формат колонки таблицы-приемника, а также не учитывались часовые пояса (возможно разные в источнике и приемнике).

Все эти особенности-подробности я добавил в соответствующие места скриптов. Надеюсь, это Вам поможет. Как и в прошлый раз, Вам нужно скопировать в свою Таблицу 1 обновленный код из Таблицы 1 по ссылке в сообщении № 40 нашего обсуждения (с исправлением id Таблицы 2 на свой).

Для быстрого "узелка на память" привожу здесь также некоторый фрагмент своего кода с характерными для этой темы операторами и комментариями:


Автор - Gustav
Дата добавления - 13.06.2018 в 19:55
VladimirSK777 Дата: Четверг, 14.06.2018, 17:23 | Сообщение № 55
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 0% ±

spreadsheets google
отлично попробую, благодарю!!! а так все вроде хорошо, ПОЛЕТ НОРМАЛЬНЫЙ
 
Ответить
Сообщениеотлично попробую, благодарю!!! а так все вроде хорошо, ПОЛЕТ НОРМАЛЬНЫЙ

Автор - VladimirSK777
Дата добавления - 14.06.2018 в 17:23
_Boroda_ Дата: Четверг, 14.06.2018, 17:36 | Сообщение № 56
Группа: Админы
Ранг: Местный житель
Сообщений: 16735
Репутация: 6534 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Gustav, а почему от 30.12.1899? Вроде ж от 31-го? Или, если точнее, от 00.01.1900
По крайней мере в Excel
Или я что-то путаю? Или это из-за 29 февраля 1900 года, которого быть не должно, но в Excel он есть?
К сообщению приложен файл: 7818979.xlsm (8.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеGustav, а почему от 30.12.1899? Вроде ж от 31-го? Или, если точнее, от 00.01.1900
По крайней мере в Excel
Или я что-то путаю? Или это из-за 29 февраля 1900 года, которого быть не должно, но в Excel он есть?

Автор - _Boroda_
Дата добавления - 14.06.2018 в 17:36
Gustav Дата: Четверг, 14.06.2018, 19:07 | Сообщение № 57
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Или это из-за 29 февраля 1900 года, которого быть не должно, но в Excel он есть?

_Boroda_, Саша, видимо, так. Картина там такая:

в Excel:

0 - 00.01.1900
60 - 29.02.1900
61 - 01.03.1900

в Google Sheets:

0 - 30.12.1899
60 - 28.02.1900
61 - 01.03.1900

Главное, что 1 марта 1900 сходятся и дальше уже вместе идут :)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Или это из-за 29 февраля 1900 года, которого быть не должно, но в Excel он есть?

_Boroda_, Саша, видимо, так. Картина там такая:

в Excel:

0 - 00.01.1900
60 - 29.02.1900
61 - 01.03.1900

в Google Sheets:

0 - 30.12.1899
60 - 28.02.1900
61 - 01.03.1900

Главное, что 1 марта 1900 сходятся и дальше уже вместе идут :)

Автор - Gustav
Дата добавления - 14.06.2018 в 19:07
_Boroda_ Дата: Четверг, 14.06.2018, 19:42 | Сообщение № 58
Группа: Админы
Ранг: Местный житель
Сообщений: 16735
Репутация: 6534 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Ага, и в VBA также, как и в Гуглах


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеАга, и в VBA также, как и в Гуглах

Автор - _Boroda_
Дата добавления - 14.06.2018 в 19:42
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!