Дэвид задается вопросом, есть ли способ изменения ссылок на ячейки в макросе при добавлении или удалении строк, аналогично тому, как формула реагирует на такие изменения?

Когда вы ссылаетесь на ячейку в макросе, например, используя Range («B6»), VBA рассматривает эту ссылку как абсолютную, что означает, что она не изменяется.

Даже если вы добавите или удалите ячейки, которые влияют на то, где теперь находится информация, которая была в B6, ссылка на макрос останется прежней.

Чтобы решить эту проблему, не используйте прямые ссылки на ячейки в макросах. Вместо этого полагайтесь на именованные диапазоны. В Excel определите имя для ячейки B6 (например, «MyData»), а затем используйте это имя в ссылке в макросе, как в Range («MyData»). Этот подход работает, потому что VBA ищет имя, чтобы определить, на какую ячейку ссылаются, а Excel следит за тем, чтобы ссылки на именованный диапазон оставались актуальными по мере добавления или удаления ячеек.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (7250) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Changing_Macro_Cell_References_Based_on_Edits [Изменение ссылок на ячейки макроса на основе правок].