Доброго дня Всем. При каком-либо редактировании листа Excel, соответствующим образом редактируются и формулы Excel. Но этого не происходит в коде ВБА Excel. Можно ли что-то с этим сделать-придумать? Спасибо _____________ Юрий.
Доброго дня Всем. При каком-либо редактировании листа Excel, соответствующим образом редактируются и формулы Excel. Но этого не происходит в коде ВБА Excel. Можно ли что-то с этим сделать-придумать? Спасибо _____________ Юрий.Юрий_Нд
Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 14:51
Уважаемый Красавчик, но мой же вопрос общий, а не частный. Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки И допустим, мы добавили на листе пустую колонку, после первой. Тогда все формулы на этом листе уже будут обращаться к третьей строчке 6 колонке. А вот программный код, как и прежде, будет искать значение в 3-ей строчке 5-ой колонки. Скажите, как я Вам могу это проиллюстрировать-продемонстрировать в файле Excel? -------------------------- Поверьте, я абсолютно не хочу спорить с Вами, просто подскажите, как это сделать, и я сделаю все, что Вы скажите.
Уважаемый Красавчик, но мой же вопрос общий, а не частный. Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки И допустим, мы добавили на листе пустую колонку, после первой. Тогда все формулы на этом листе уже будут обращаться к третьей строчке 6 колонке. А вот программный код, как и прежде, будет искать значение в 3-ей строчке 5-ой колонки. Скажите, как я Вам могу это проиллюстрировать-продемонстрировать в файле Excel? -------------------------- Поверьте, я абсолютно не хочу спорить с Вами, просто подскажите, как это сделать, и я сделаю все, что Вы скажите.Юрий_Нд
Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 16:46
Так в том-то и вопрос, чтобы редактировались не только формулы, но и код ВБА Excel... То есть функции и процедуры... ...в которых происходит обращение к старым, не сдвинутым адресам ячеек.
Так в том-то и вопрос, чтобы редактировались не только формулы, но и код ВБА Excel... То есть функции и процедуры... ...в которых происходит обращение к старым, не сдвинутым адресам ячеек.Юрий_Нд
Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 18:48
Варианты 1. Никак. 2. Поиметь много удовольствий на седалищную мышцу, и написать код для изменения кода VBA. 3. Хорошенько подумать, и написать правильный код. 4. Идеи кончились.
Варианты 1. Никак. 2. Поиметь много удовольствий на седалищную мышцу, и написать код для изменения кода VBA. 3. Хорошенько подумать, и написать правильный код. 4. Идеи кончились. RAN
В принципе я так и думал, что это невозможно. По крайней мере так просто, как это делает Excel формулами. Мы же не корректируем формулы листа, если где-то добавили одну-две или целую колонку ячеек... Но в любом случае спасибо. Хотя я думаю, что разработчики Excel могли бы поднапрячься и решить эту, не слишком сложную задачу. По аналогии с формулами...
В принципе я так и думал, что это невозможно. По крайней мере так просто, как это делает Excel формулами. Мы же не корректируем формулы листа, если где-то добавили одну-две или целую колонку ячеек... Но в любом случае спасибо. Хотя я думаю, что разработчики Excel могли бы поднапрячься и решить эту, не слишком сложную задачу. По аналогии с формулами...Юрий_Нд
Сообщение отредактировал Юрий_Нд - Воскресенье, 19.05.2019, 19:00
Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки
, а в первой строчке шапка, в пятой колонке в шапке написано, например, "Сумма". А в третьей строке первого столбце пусто написано "яблоки". Так вот, в самом начале пишем что-то типа [vba]
[/vba] И тогда можно до запуска макроса строки-столбцы добавлять/удалять. Главное, не трогать первую строку и первый столбец. Можно и без привязки к первым строке-столбцу, принцип аналогичен, но поиск по всему листу. Или сначала ищем нужный столбец/строку, а в нем потом ищем нужную строку/столбец. В общем суем все в переменные, которые не жестко обозначаем, а ищем значения
Просто нужно писать код так, чтобы там не было прямых ссылок на ячейки. Не так
Допустим, в ВБА мы обращаемся к ячейке третьей строчке, пятой колонки
, а в первой строчке шапка, в пятой колонке в шапке написано, например, "Сумма". А в третьей строке первого столбце пусто написано "яблоки". Так вот, в самом начале пишем что-то типа [vba]
[/vba] И тогда можно до запуска макроса строки-столбцы добавлять/удалять. Главное, не трогать первую строку и первый столбец. Можно и без привязки к первым строке-столбцу, принцип аналогичен, но поиск по всему листу. Или сначала ищем нужный столбец/строку, а в нем потом ищем нужную строку/столбец. В общем суем все в переменные, которые не жестко обозначаем, а ищем значения_Boroda_
Присвойте ячейке имя и обращайтесь к ячейке по имени.
Понимаете, если бы весь сыр-бор был из-за одной ячейки. Я бы уже давно её подправил ручками. Но тут дело-разговор обо всём листе. Не будешь же каждой ячейке присваивать свое имя ...
Уважаемый InExSu очень рад читать Ваше сообщение. Спасибо за всё хорошее, Вы очень мне помогли когда-то. Теперь по делу.
Присвойте ячейке имя и обращайтесь к ячейке по имени.
Понимаете, если бы весь сыр-бор был из-за одной ячейки. Я бы уже давно её подправил ручками. Но тут дело-разговор обо всём листе. Не будешь же каждой ячейке присваивать свое имя ...Юрий_Нд
Юрий_Нд, ответ дал _Boroda_ . Все в мире относительно. Без привязки к чему-либо , к содержимому, к адресу, к имени, не работает ни одна система координат. Excel не исключение и
соответствующим образом редактируются и формулы Excel.
только по тому что они записаны относительно других и изменения этих других отражается в этих формулах. Другое дело, что порой трудно найти точку, к которой можно привязаться. Реперную точку надо всегда иметь, если её нет, то результат может быть непредсказуем.
Юрий_Нд, ответ дал _Boroda_ . Все в мире относительно. Без привязки к чему-либо , к содержимому, к адресу, к имени, не работает ни одна система координат. Excel не исключение и
соответствующим образом редактируются и формулы Excel.
только по тому что они записаны относительно других и изменения этих других отражается в этих формулах. Другое дело, что порой трудно найти точку, к которой можно привязаться. Реперную точку надо всегда иметь, если её нет, то результат может быть непредсказуем.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
bmv98rus, спасибо, сообщение Бороды я видел и оценил. Хотел ответить, да некогда было. Сейчас тоже некогда, но из уважения ко Всем отвечу. Я инженер. Я не программист. Просто ВБА Excel позволяет мне решать задачи, которые не по зубам простому Excel. Но приходится мне это делать, крайне редко. Например 2 недели назад, когда я взялся за эту задачу, я так основательно забыл основы, что так и не смог правильно написать простое слово String. А Вы мне говорите про метод или объект, уже не помню, Range. Чтобы так разбираться, чтобы хоть немножко приблизиться к Вашему уровню, нужно Экселем заниматься ежедневно, а не не "раз от раза". Поэтому и сижу сейчас, решаю простую табличку, пять строчек и 20 колонок. Просто тупо выбираю нужные ячейки складываю-умножаю-делю, и записываю в ту же таблицу. Если бы таблица была жёсткая, то есть 5 на 20, конечно бы не занимался такой ерундой. Но количество строчек плавающее. Сегодня 5, а завтра 55. Поэтому другого способа, как решить эту задачу проще, я не знаю. И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла. Вот как-то так. И ещё, если можно, помогите пожалуйста в соседней теме. Неужели там такой сложный вопрос? Или там всё настолько просто, что не интересно отвечать?
bmv98rus, спасибо, сообщение Бороды я видел и оценил. Хотел ответить, да некогда было. Сейчас тоже некогда, но из уважения ко Всем отвечу. Я инженер. Я не программист. Просто ВБА Excel позволяет мне решать задачи, которые не по зубам простому Excel. Но приходится мне это делать, крайне редко. Например 2 недели назад, когда я взялся за эту задачу, я так основательно забыл основы, что так и не смог правильно написать простое слово String. А Вы мне говорите про метод или объект, уже не помню, Range. Чтобы так разбираться, чтобы хоть немножко приблизиться к Вашему уровню, нужно Экселем заниматься ежедневно, а не не "раз от раза". Поэтому и сижу сейчас, решаю простую табличку, пять строчек и 20 колонок. Просто тупо выбираю нужные ячейки складываю-умножаю-делю, и записываю в ту же таблицу. Если бы таблица была жёсткая, то есть 5 на 20, конечно бы не занимался такой ерундой. Но количество строчек плавающее. Сегодня 5, а завтра 55. Поэтому другого способа, как решить эту задачу проще, я не знаю. И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла. Вот как-то так. И ещё, если можно, помогите пожалуйста в соседней теме. Неужели там такой сложный вопрос? Или там всё настолько просто, что не интересно отвечать?Юрий_Нд
Сообщение отредактировал Юрий_Нд - Среда, 22.05.2019, 00:52
Юрий, а Вы думаете, здесь программисты собрались? Не, они тоже наверняка есть, но меньшинство. Кого тут только нет, я вот, например, экономистом работаю. Есть бухгалтера, есть HR, есть даже сварщик (кстати, великолепно знающий VBA). Не в специальности дело[/offtop]
Юрий, а Вы думаете, здесь программисты собрались? Не, они тоже наверняка есть, но меньшинство. Кого тут только нет, я вот, например, экономистом работаю. Есть бухгалтера, есть HR, есть даже сварщик (кстати, великолепно знающий VBA). Не в специальности дело[/offtop]_Boroda_
Юрий_Нд, ни одного вопрошающего тут не пинают за незнания, ну разве что за незнания элементарных вещей начальной школы. То что иной раз язык понятный одному, не понятен другому - это да. Точно также как порой задачу трудно объяснить. Слова вроде верные, а в итоге чушь может выйти
И учиться этому более основательно, чтобы забыть всё через полгода-год, думаю что не имеет смысла.
Через пол года, год восстановить будет проще.
Юрий_Нд, ни одного вопрошающего тут не пинают за незнания, ну разве что за незнания элементарных вещей начальной школы. То что иной раз язык понятный одному, не понятен другому - это да. Точно также как порой задачу трудно объяснить. Слова вроде верные, а в итоге чушь может выйти