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

Вход

Регистрация

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

 

= Мир MS Excel/Редактирование в коде ВБА Excel, после редактирования листа. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Редактирование в коде ВБА Excel, после редактирования листа.
Юрий_Нд Дата: Воскресенье, 19.05.2019, 14:51 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Доброго дня Всем.
При каком-либо редактировании листа Excel, соответствующим образом редактируются и формулы Excel.
Но этого не происходит в коде ВБА Excel.
Можно ли что-то с этим сделать-придумать?
Спасибо _____________ Юрий.


Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 14:51
 
Ответить
СообщениеДоброго дня Всем.
При каком-либо редактировании листа Excel, соответствующим образом редактируются и формулы Excel.
Но этого не происходит в коде ВБА Excel.
Можно ли что-то с этим сделать-придумать?
Спасибо _____________ Юрий.

Автор - Юрий_Нд
Дата добавления - 19.05.2019 в 14:51
krosav4ig Дата: Воскресенье, 19.05.2019, 16:30 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Доброго
У нас нет ни
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
листа Excel,
в котором
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
редактируются формулы Excel

ни
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
кода ВБА Excel


Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
Можно ли что-то с этим сделать-придумать?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДоброго
У нас нет ни
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
листа Excel,
в котором
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
редактируются формулы Excel

ни
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
кода ВБА Excel


Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
Можно ли что-то с этим сделать-придумать?

Автор - krosav4ig
Дата добавления - 19.05.2019 в 16:30
Юрий_Нд Дата: Воскресенье, 19.05.2019, 16:44 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Уважаемый Красавчик, но мой же вопрос общий, а не частный.
Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки
И допустим, мы добавили на листе пустую колонку, после первой.
Тогда все формулы на этом листе уже будут обращаться к третьей строчке 6 колонке.
А вот программный код, как и прежде, будет искать значение в 3-ей строчке 5-ой колонки.
Скажите, как я Вам могу это проиллюстрировать-продемонстрировать в файле Excel?
--------------------------
Поверьте, я абсолютно не хочу спорить с Вами, просто подскажите, как это сделать, и я сделаю все, что Вы скажите.


Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 16:46
 
Ответить
СообщениеУважаемый Красавчик, но мой же вопрос общий, а не частный.
Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки
И допустим, мы добавили на листе пустую колонку, после первой.
Тогда все формулы на этом листе уже будут обращаться к третьей строчке 6 колонке.
А вот программный код, как и прежде, будет искать значение в 3-ей строчке 5-ой колонки.
Скажите, как я Вам могу это проиллюстрировать-продемонстрировать в файле Excel?
--------------------------
Поверьте, я абсолютно не хочу спорить с Вами, просто подскажите, как это сделать, и я сделаю все, что Вы скажите.

Автор - Юрий_Нд
Дата добавления - 19.05.2019 в 16:44
RAN Дата: Воскресенье, 19.05.2019, 18:39 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата Юрий_Нд, 19.05.2019 в 16:44, в сообщении № 3 ()
но мой же вопрос общий, а не частный.

Например, код
[vba]
Код
Rows("2:20").Insert
[/vba]
вставит 19 строк, и формулы листа отредактируются.
Ответ общий, не частный


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата Юрий_Нд, 19.05.2019 в 16:44, в сообщении № 3 ()
но мой же вопрос общий, а не частный.

Например, код
[vba]
Код
Rows("2:20").Insert
[/vba]
вставит 19 строк, и формулы листа отредактируются.
Ответ общий, не частный

Автор - RAN
Дата добавления - 19.05.2019 в 18:39
Юрий_Нд Дата: Воскресенье, 19.05.2019, 18:45 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
и формулы листа отредактируются.

Так в том-то и вопрос, чтобы редактировались не только формулы, но и код ВБА Excel...
То есть функции и процедуры...
...в которых происходит обращение к старым, не сдвинутым адресам ячеек.


Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 18:48
 
Ответить
Сообщение
и формулы листа отредактируются.

Так в том-то и вопрос, чтобы редактировались не только формулы, но и код ВБА Excel...
То есть функции и процедуры...
...в которых происходит обращение к старым, не сдвинутым адресам ячеек.

Автор - Юрий_Нд
Дата добавления - 19.05.2019 в 18:45
RAN Дата: Воскресенье, 19.05.2019, 18:50 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Варианты
1. Никак.
2. Поиметь много удовольствий на седалищную мышцу, и написать код для изменения кода VBA.
3. Хорошенько подумать, и написать правильный код.
4. Идеи кончились. :'(


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВарианты
1. Никак.
2. Поиметь много удовольствий на седалищную мышцу, и написать код для изменения кода VBA.
3. Хорошенько подумать, и написать правильный код.
4. Идеи кончились. :'(

Автор - RAN
Дата добавления - 19.05.2019 в 18:50
Юрий_Нд Дата: Воскресенье, 19.05.2019, 18:57 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
1. Никак.

В принципе я так и думал, что это невозможно.
По крайней мере так просто, как это делает Excel формулами.
Мы же не корректируем формулы листа, если где-то добавили одну-две или целую колонку ячеек...
Но в любом случае спасибо.
Хотя я думаю, что разработчики Excel могли бы поднапрячься и решить эту, не слишком сложную задачу.
По аналогии с формулами...


Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 19:00
 
Ответить
Сообщение
1. Никак.

В принципе я так и думал, что это невозможно.
По крайней мере так просто, как это делает Excel формулами.
Мы же не корректируем формулы листа, если где-то добавили одну-две или целую колонку ячеек...
Но в любом случае спасибо.
Хотя я думаю, что разработчики Excel могли бы поднапрячься и решить эту, не слишком сложную задачу.
По аналогии с формулами...

Автор - Юрий_Нд
Дата добавления - 19.05.2019 в 18:57
RAN Дата: Воскресенье, 19.05.2019, 19:13 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата Юрий_Нд, 19.05.2019 в 18:57, в сообщении № 7 ()
Хотя я думаю, что разработчики Excel могли бы поднапрячься и решить эту, не слишком сложную задачу.

Вы не правильно НЕ думаете
Кто вам соврал, что это совсем не сложно?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата Юрий_Нд, 19.05.2019 в 18:57, в сообщении № 7 ()
Хотя я думаю, что разработчики Excel могли бы поднапрячься и решить эту, не слишком сложную задачу.

Вы не правильно НЕ думаете
Кто вам соврал, что это совсем не сложно?

Автор - RAN
Дата добавления - 19.05.2019 в 19:13
_Boroda_ Дата: Понедельник, 20.05.2019, 00:06 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Просто нужно писать код так, чтобы там не было прямых ссылок на ячейки. Не так
Цитата Юрий_Нд, 19.05.2019 в 16:44, в сообщении № 3 ()
Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки
, а в первой строчке шапка, в пятой колонке в шапке написано, например, "Сумма". А в третьей строке первого столбце пусто написано "яблоки". Так вот, в самом начале пишем что-то типа
[vba]
Код
    c_ = Rows("1:1").Find(What:="Сумма").Column
    r_ = Columns("A:A").Find(What:="яблоки").Row
[/vba]
И тогда можно до запуска макроса строки-столбцы добавлять/удалять. Главное, не трогать первую строку и первый столбец. Можно и без привязки к первым строке-столбцу, принцип аналогичен, но поиск по всему листу. Или сначала ищем нужный столбец/строку, а в нем потом ищем нужную строку/столбец.
В общем суем все в переменные, которые не жестко обозначаем, а ищем значения


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПросто нужно писать код так, чтобы там не было прямых ссылок на ячейки. Не так
Цитата Юрий_Нд, 19.05.2019 в 16:44, в сообщении № 3 ()
Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки
, а в первой строчке шапка, в пятой колонке в шапке написано, например, "Сумма". А в третьей строке первого столбце пусто написано "яблоки". Так вот, в самом начале пишем что-то типа
[vba]
Код
    c_ = Rows("1:1").Find(What:="Сумма").Column
    r_ = Columns("A:A").Find(What:="яблоки").Row
[/vba]
И тогда можно до запуска макроса строки-столбцы добавлять/удалять. Главное, не трогать первую строку и первый столбец. Можно и без привязки к первым строке-столбцу, принцип аналогичен, но поиск по всему листу. Или сначала ищем нужный столбец/строку, а в нем потом ищем нужную строку/столбец.
В общем суем все в переменные, которые не жестко обозначаем, а ищем значения

Автор - _Boroda_
Дата добавления - 20.05.2019 в 00:06
InExSu Дата: Вторник, 21.05.2019, 23:16 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
Цитата Юрий_Нд, 19.05.2019 в 16:44, в сообщении № 3 ()
в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки

Присвойте ячейке имя и обращайтесь к ячейке по имени.
[vba]
Код
ActiveSheet.range("Имя_Ячейки01").value = 789
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
Цитата Юрий_Нд, 19.05.2019 в 16:44, в сообщении № 3 ()
в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки

Присвойте ячейке имя и обращайтесь к ячейке по имени.
[vba]
Код
ActiveSheet.range("Имя_Ячейки01").value = 789
[/vba]

Автор - InExSu
Дата добавления - 21.05.2019 в 23:16
Юрий_Нд Дата: Вторник, 21.05.2019, 23:33 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Уважаемый InExSu очень рад читать Ваше сообщение.
Спасибо за всё хорошее, Вы очень мне помогли когда-то.
Теперь по делу.
Присвойте ячейке имя и обращайтесь к ячейке по имени.

Понимаете, если бы весь сыр-бор был из-за одной ячейки. Я бы уже давно её подправил ручками. Но тут дело-разговор обо всём листе. Не будешь же каждой ячейке присваивать свое имя ...
 
Ответить
СообщениеУважаемый InExSu очень рад читать Ваше сообщение.
Спасибо за всё хорошее, Вы очень мне помогли когда-то.
Теперь по делу.
Присвойте ячейке имя и обращайтесь к ячейке по имени.

Понимаете, если бы весь сыр-бор был из-за одной ячейки. Я бы уже давно её подправил ручками. Но тут дело-разговор обо всём листе. Не будешь же каждой ячейке присваивать свое имя ...

Автор - Юрий_Нд
Дата добавления - 21.05.2019 в 23:33
bmv98rus Дата: Вторник, 21.05.2019, 23:47 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Юрий_Нд, ответ дал _Boroda_ . Все в мире относительно. Без привязки к чему-либо , к содержимому, к адресу, к имени, не работает ни одна система координат. Excel не исключение и
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
соответствующим образом редактируются и формулы Excel.
только по тому что они записаны относительно других и изменения этих других отражается в этих формулах. Другое дело, что порой трудно найти точку, к которой можно привязаться. Реперную точку надо всегда иметь, если её нет, то результат может быть непредсказуем.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеЮрий_Нд, ответ дал _Boroda_ . Все в мире относительно. Без привязки к чему-либо , к содержимому, к адресу, к имени, не работает ни одна система координат. Excel не исключение и
Цитата Юрий_Нд, 19.05.2019 в 14:51, в сообщении № 1 ()
соответствующим образом редактируются и формулы Excel.
только по тому что они записаны относительно других и изменения этих других отражается в этих формулах. Другое дело, что порой трудно найти точку, к которой можно привязаться. Реперную точку надо всегда иметь, если её нет, то результат может быть непредсказуем.

Автор - bmv98rus
Дата добавления - 21.05.2019 в 23:47
Юрий_Нд Дата: Среда, 22.05.2019, 00:51 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, спасибо, сообщение Бороды я видел и оценил.
Хотел ответить, да некогда было. Сейчас тоже некогда, но из уважения ко Всем отвечу.
Я инженер. Я не программист. Просто ВБА Excel позволяет мне решать задачи, которые не по зубам простому Excel. Но приходится мне это делать, крайне редко. Например 2 недели назад, когда я взялся за эту задачу, я так основательно забыл основы, что так и не смог правильно написать простое слово String. А Вы мне говорите про метод или объект, уже не помню, Range. Чтобы так разбираться, чтобы хоть немножко приблизиться к Вашему уровню, нужно Экселем заниматься ежедневно, а не не "раз от раза".
Поэтому и сижу сейчас, решаю простую табличку, пять строчек и 20 колонок. Просто тупо выбираю нужные ячейки складываю-умножаю-делю, и записываю в ту же таблицу.
Если бы таблица была жёсткая, то есть 5 на 20, конечно бы не занимался такой ерундой. Но количество строчек плавающее. Сегодня 5, а завтра 55. Поэтому другого способа, как решить эту задачу проще, я не знаю. И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла.
Вот как-то так.
И ещё, если можно, помогите пожалуйста в соседней теме. Неужели там такой сложный вопрос?
Или там всё настолько просто, что не интересно отвечать?


Сообщение отредактировал Юрий_Нд - Среда, 22.05.2019, 00:52
 
Ответить
Сообщениеbmv98rus, спасибо, сообщение Бороды я видел и оценил.
Хотел ответить, да некогда было. Сейчас тоже некогда, но из уважения ко Всем отвечу.
Я инженер. Я не программист. Просто ВБА Excel позволяет мне решать задачи, которые не по зубам простому Excel. Но приходится мне это делать, крайне редко. Например 2 недели назад, когда я взялся за эту задачу, я так основательно забыл основы, что так и не смог правильно написать простое слово String. А Вы мне говорите про метод или объект, уже не помню, Range. Чтобы так разбираться, чтобы хоть немножко приблизиться к Вашему уровню, нужно Экселем заниматься ежедневно, а не не "раз от раза".
Поэтому и сижу сейчас, решаю простую табличку, пять строчек и 20 колонок. Просто тупо выбираю нужные ячейки складываю-умножаю-делю, и записываю в ту же таблицу.
Если бы таблица была жёсткая, то есть 5 на 20, конечно бы не занимался такой ерундой. Но количество строчек плавающее. Сегодня 5, а завтра 55. Поэтому другого способа, как решить эту задачу проще, я не знаю. И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла.
Вот как-то так.
И ещё, если можно, помогите пожалуйста в соседней теме. Неужели там такой сложный вопрос?
Или там всё настолько просто, что не интересно отвечать?

Автор - Юрий_Нд
Дата добавления - 22.05.2019 в 00:51
_Boroda_ Дата: Среда, 22.05.2019, 01:11 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
[offtop]
Я инженер. Я не программист

Юрий, а Вы думаете, здесь программисты собрались? Не, они тоже наверняка есть, но меньшинство. Кого тут только нет, я вот, например, экономистом работаю. Есть бухгалтера, есть HR, есть даже сварщик (кстати, великолепно знающий VBA). Не в специальности дело[/offtop]


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

Юрий, а Вы думаете, здесь программисты собрались? Не, они тоже наверняка есть, но меньшинство. Кого тут только нет, я вот, например, экономистом работаю. Есть бухгалтера, есть HR, есть даже сварщик (кстати, великолепно знающий VBA). Не в специальности дело[/offtop]

Автор - _Boroda_
Дата добавления - 22.05.2019 в 01:11
bmv98rus Дата: Среда, 22.05.2019, 12:56 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Юрий_Нд, ни одного вопрошающего тут не пинают за незнания, ну разве что за незнания элементарных вещей начальной школы. То что иной раз язык понятный одному, не понятен другому - это да. Точно также как порой задачу трудно объяснить. Слова вроде верные, а в итоге чушь может выйти
И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла.
Через пол года, год восстановить будет проще.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеЮрий_Нд, ни одного вопрошающего тут не пинают за незнания, ну разве что за незнания элементарных вещей начальной школы. То что иной раз язык понятный одному, не понятен другому - это да. Точно также как порой задачу трудно объяснить. Слова вроде верные, а в итоге чушь может выйти
И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла.
Через пол года, год восстановить будет проще.

Автор - bmv98rus
Дата добавления - 22.05.2019 в 12:56
Юрий_Нд Дата: Среда, 22.05.2019, 13:04 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Спасибо на добром слове, уважаемый bmv98rus.
Я вам очень признателен.
 
Ответить
СообщениеСпасибо на добром слове, уважаемый bmv98rus.
Я вам очень признателен.

Автор - Юрий_Нд
Дата добавления - 22.05.2019 в 13:04
  • Страница 1 из 1
  • 1
Поиск:

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