Как удалить фигуру в Excel

Обновлено: 03.07.2024

Удалить фигуру в определенном диапазоне ячеек, а не во всех - Excel

Как написать программу VBA для удаления формы в определенном диапазоне, а не на всех листах.
У меня на листе 15 изображений, одно из которых мне нужно заменить.
Я знаю расположение этого изображения, т.е. "A201:I230"
Итак, как удалить фигуру/изображение в этом диапазоне, прежде чем вставлять новое изображение.

(Распродажа 40% скоро заканчивается)

Курс Excel VBA — от новичка до эксперта

200+ видеоуроков 50+ часов обучения 200+ руководств Excel

С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)

(Скидка 40% скоро закончится!)

Похожие темы

Как удалить несколько листов — Excel

Привет,
Мне нужно удалить последовательность листов в моей книге.
Если я использую этот код:

С ActiveWorkbook
Если .Worksheets.Count >= 5, то
Для n = 5 To .Worksheets.Count
Worksheets(n).Удалить
Далее n
Конец, если
Конец с

Я получаю окно подтверждения с этим сообщением:

"На листах, выбранных для удаления, могут существовать данные. Чтобы навсегда удалить данные, нажмите Удалить" [УДАЛИТЬ] [ОТМЕНИТЬ]

Я хочу удалить все листы без получения сообщения.

Заранее большое спасибо за вашу поддержку.

Проблема с указателем мыши — Excel

Внезапно мой указатель мыши в Excel не работает должным образом. Я не могу использовать мышь для перетаскивания и заполнения или для настройки линий разрыва страницы в режиме просмотра разрыва страницы. Он всегда имеет форму белого креста с черной окантовкой и никогда не меняет своей формы при наведении на правый нижний край ячеек. Сейчас. что делать, чтобы избавиться от этой проблемы.
ТИА

Автоматическое отражение определенного диапазона на другом листе — Excel

Здравствуйте, я хотел бы взять часть листа. Таким образом, ячейки, которые я хочу отразить, находятся в ячейках листа предложений B32 x F51. А затем отразите точную копию на другом листе. На другом листе должны быть те же значения A20 X G39. То, что я пытаюсь сделать, это иметь лист с артикулами, ценами и т. д., а затем, когда я добавляю, удаляю, объединяю, окрашиваю или делаю что-либо с ячейкой на листе «создание предложения», я хочу, чтобы он отражал только определенные ячейки на другой лист, который является «копией продавца», которую мы будем печатать клиентам. Таким образом, в копии предложения продавец может вставить строки или даже изменить цвет ячеек, а затем сделать так, чтобы он отражал то же самое на «копии продавца», которую мы будем печатать для клиентов. Спасибо.

Специальная вставка -> Транспонирование не работает — Excel

Я выполнил поиск здесь, но не нашел ответа, поэтому здесь ничего нет.

У меня есть таблица с данными от A1 до H1 и от A275 до H275. Я выделяю все это, копирую, перехожу на вкладку «Лист2» ​​и выбираю A1, «Специальная вставка» -> «Транспонировать», и появляется следующее сообщение об ошибке:
Цитата:

Информацию нельзя вставить, так как области копирования и области вставки имеют разный размер и форму. Попробуйте выполнить одно из следующих действий.
 – Щелкните одну ячейку и вставьте ее.
- Выберите прямоугольник того же размера и формы, а затем вставьте его.

Хотя убей, я не могу понять, почему это не работает! Я делал это много раз с другими электронными таблицами. Кто-нибудь когда-нибудь испытывал это? Если да, то смогли ли вы решить эту проблему и как?

Большое спасибо,
Майк

Как удалить отфильтрованные строки в списке с автофильтрацией. Ряд. - Excel

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

Код Vba: удаление всей строки на основе условия — Excel

Все еще изучаю VBA. Я пытаюсь удалить всю строку на основе условия в одной ячейке строки. Обычно я просто фильтрую это значение и удаляю строки, но я не уверен, что это возможно в коде VBA. Можете ли вы предоставить код, если он не слишком сложен.

Выберите ячейку A1, если значение равно 100, удалите всю строку, иначе перейдите к следующей строке. Затем прокручивайте каждую строку в электронной таблице, пока не будут удалены все строки с выбранной ячейкой, равной 100.

Удалить только выбранный элемент из списка и источника заполнения списка. - Excel

У меня есть приведенный ниже код, который удаляет все элементы из списка и моего листа Excel, который является источником для заполнения этого списка. Я использую стиль кнопки выбора для своего списка и стиль выбора как одиночный .i.e. вы можете выбрать только один элемент за один раз в lisbox. Я хочу, чтобы мой макрос удалял выбранный элемент с моего рабочего листа, т.е.это вся строка, так что она больше не отражается в моем lisbox. Ниже мой код:

Заранее большое спасибо за помощь.

Как удалить все запятые из электронной таблицы? - Excel

У меня есть большая электронная таблица в Excel 2007. Я преобразовываю ее в файл .csv для импорта в другую программу. Мне нужно удалить все запятые из всех данных.

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

Я пробовал разные форматы (текстовые, общие и т. д.) и разные типы файлов (.xls, .xlsx, .csv) и все равно получаю ту же ошибку.

Как сделать ссылку на изображение из ячейки рабочего листа? - Excel

У меня есть изображение или картинка на листе.

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

Возможно ли это в Microsoft Exec 2000?

Что такое ярлык для удаления, сдвига ячеек вверх? - Excel

Привет всем! Кто-нибудь может подсказать ярлык для Удалить, Сдвинуть ячейки вверх? Я проверил через Google, но не смог найти ярлык.

Макрос для удаления целых строк, если некоторые ячейки пусты - Excel

Мне нужна помощь в создании макроса, который удаляет целую строку с пустыми ячейками в столбцах B, C и D в той же строке.
Например, если у меня есть пустые ячейки в b3, c3 и d3, я бы хотел, чтобы строка была удалена.

Я использовал приведенный ниже код только для столбца B, но мне также нужно включить столбцы C и D. Я пытался поставить Columns("B:D"), но он удаляет все.

Я уверен, что это что-то простое. как я!

Любая помощь приветствуется

Пользовательская форма для поиска, редактирования, изменения и удаления — Excel

Как создать пользовательскую форму с кнопкой для поиска, редактирования, изменения, удаления отдельных записей. Также в случае перечисленных результатов получены записи, которые можно было бы распечатать?

Макрос для перемещения ячеек на лист архива — Excel

Привет, давний пользователь, впервые опубликовавший пост. Ищу помощи, так как я не эксперт в макросах. Вот что я пытаюсь сделать:

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

Итак, у меня есть рабочая тетрадь с двумя листами, один "СДЕЛАТЬ", другой "АРХИВ". Оба листа имеют одинаковые столбцы и все такое. Я ищу макрос, который будет автоматически вырезать (строку) из листа TO DO и вставлять его в лист АРХИВА, как только это будет сделано, а затем удалять вырезанную строку из списка TO DO, чтобы он оставался заполненным.

Инициатором архивации являются столбцы M и N с заголовками "Завершено?" и у каждого есть раскрывающийся список проверки, который говорит «ДА». Когда в обеих ячейках в столбцах M и N есть ДА, я хотел бы, чтобы макрос выполнял вышеупомянутые действия.

Я провел поиск по форумам и нашел что-то похожее, но не совсем то, что искал.

Сохранить лист в новый файл — только значения — Excel

У меня есть рабочая книга, в которой я хочу сохранить определенный рабочий лист в новый файл с сохраненными только значениями — все данные в этом рабочем листе являются ссылками на ячейки на другом рабочем листе, который использует функцию ВПР для извлечения данных из базы данных.< /p>

Нашел следующий код, и он мне близок, но он копирует ссылки на ячейки, а не значения. Это также позволяет мне указать имя файла из ссылки на ячейку.

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

Какие изменения мне нужно внести, чтобы заставить это работать в соответствии с указанными выше требованиями?

Sub CopyMe()
Затемнить SaveMeAs как строку
SaveMeAs = Sheets("Лист1").Range("B2").Text
Листы("Лист3").Copy
ActiveWorkbook.SaveAs Filename:="C:\My Documents\" & SaveMeAs
End Sub

Vba — Как удалить автоматически отфильтрованные строки, кроме заголовка? - Excel

Привет,
как мне выбрать (в VBA) все строки, которые были отфильтрованы автофильтром (используя код VBA), и удалить их, оставив только заголовок. Я просто не могу понять, как выбирать целые строки при фильтрации данных.
Спасибо за подсказки!

Нужен макрос для сохранения в формате PDF в определенной папке со значением ячейки и датой. - Excel

Может ли кто-нибудь помочь мне создать макрос, который сохранит рабочий лист в формате PDF в определенной папке со значением ячейки и датой. Это то, что у меня есть на данный момент.

ActiveSheet.ExportAsFixedFormat Тип:=xlTypePDF, Имя файла:=Range("H10"). Значение и формат(Дата, "mmdd")

Это сохраняет его как правильное значение ячейки + дату, но сохраняет его в моих документах. Мне нужно сохранить в общую папку на сетевом диске.

Любая помощь будет принята с благодарностью.
СПАСИБО

Vba для изменения цвета шрифта в ячейках на основе значения - Excel

Я использую приведенный ниже базовый код в событии On Workbook Open для форматирования ячеек со значением меньше 2 и меньше 1 с определенным цветом.

Код работает, но при открытии листа он сильно замедляет работу. Есть ли лучший способ написать это? Спасибо!

Проблема с блокировкой Excel, неработающими кликами мыши, повторяющимися событиями нажатия клавиш — Excel

Отправил это на форумы Ozgrid, но пока не получил никакой помощи, поэтому решил попробовать и здесь!

В последнее время у меня возникла странная проблема. У меня есть довольно длинный макрос, который отлично работает большую часть времени. Иногда он будет работать так, как ожидалось, но как только макрос завершится, Excel перестанет реагировать на щелчки мыши. Когда я нажимаю в любом месте (пытаясь выбрать ячейку или пункт меню Excel. Щелкнув в любом месте в Excel), я получу системный звук «динь», и ничего не произойдет. НО, если я использую клавиши со стрелками на клавиатуре, я вижу, что выбор активной ячейки перемещается соответственно. Тогда это становится действительно странным - когда я выделяю ячейку и нажимаю любую клавишу для ввода текста, она дублируется. Поэтому, если я нажму «s», он введет «ss» в ячейку, а затем, когда я нажму «Ввод», он автоматически перейдет к следующей ячейке вниз, но в предыдущей ячейке ничего не будет сохранено.

Я вообще не понимаю, что происходит. Я не могу придумать ничего в своем макросе, что могло бы иметь такие эффекты. Я убедился, что обновление экрана снова включается в конце каждой процедуры. Если я захожу в VBE, я могу вручную запускать процедуры, и все они работают нормально. Единственный способ, которым я смог вернуться к нормальной жизни, - это принудительно закрыть Excel и снова открыть его. Есть идеи?

По-прежнему возникают проблемы, и то же самое происходит с этой книгой на двух разных компьютерах, поэтому я не думаю, что проблема связана с аппаратным обеспечением или ОС. Когда он вот так блокируется, я все равно могу делать что угодно в VBE (редактировать ячейки, запускать макросы и т. д.) без проблем. Если я нахожусь в окне Excel, я могу щелкнуть Alt на клавиатуре, и появятся сочетания клавиш для меню, но я не могу углубиться в это, нажимая сочетания букв, они ничего не делают. Если я использую клавишу удаления для удаления содержимого ячейки, она удаляется. Но если я наберу что-нибудь еще (цифры, буквы или символы), то он каждый раз вводит 2 экземпляра ключа, но когда я нажимаю ввод, в ячейке ничего не меняется. Я также не могу на самом деле сфокусироваться на окне Excel, если что-то еще (например, VBE) находится поверх него, щелчок в окне Excel просто издает небольшой системный звук «динь», и ничего не происходит.

Если я нажму кнопку "Сохранить" в VBE (поскольку я не могу ничего щелкнуть в окне Excel), то он, кажется, выйдет из него и вернется в нормальное состояние. Я пытался найти что-нибудь похожее на это и ничего не нашел.

В моем файле .xlsm есть несколько лишних фигур, которые я временно использовал для запуска пробных макросов. Теперь мне нужно удалить их, и я не могу их удалить. Поделитесь как, если знаете. Спасибо.

НАРАЯНК991

Ниндзя Excel

Я предполагаю, что эти фигуры есть в рабочих листах.

На любом рабочем листе на вкладке "Главная" на ленте вы увидите стрелку раскрывающегося списка "Найти и выбрать"; щелчок по нему вызывает список выбора , где вы можете нажать на панель выбора.

Нажмите «Показать все», чтобы убедиться, что все фигуры видны, а затем среди отображаемых объектов выберите объект, который хотите удалить. При нажатии на любой объект он будет выделен; нажмите клавишу DEL, чтобы удалить его.

Стив Браун

Новый участник

Я предполагаю, что эти фигуры есть в рабочих листах.

На любом рабочем листе на вкладке "Главная" на ленте вы увидите стрелку раскрывающегося списка "Найти и выбрать"; щелчок по нему вызывает список выбора , где вы можете нажать на панель выбора.

Нажмите «Показать все», чтобы убедиться, что все фигуры видны, а затем среди отображаемых объектов выберите объект, который хотите удалить. При нажатии на любой объект он будет выделен; нажмите клавишу DEL, чтобы удалить его.

--
С помощью описанного выше метода я мог скрыть или отобразить любую выбранную фигуру, но я не мог удалить какую-либо фигуру. Я думаю, что нет способа удалить фигуры, созданные в Excel.

НАРАЯНК991

Ниндзя Excel

Конечно, есть способ; все, что вы создали в книге Excel, можно уничтожить или удалить.

Когда вы видите выделенную фигуру , нажмите клавишу DEL, чтобы удалить эту фигуру.

Возможно, если вы сможете загрузить свой файл, реальная проблема будет ясна.

Стив Браун

Новый участник

Я прилагаю файл xlsm, который включает вкладки "Таблица 4" и "Таблица 5", в которых есть фигуры для запуска макросов.

Я хочу удалить (и не могу удалить) фигуры в красной области рядом с ячейкой AU7 в таблице 4 и рядом с ячейкой C27 в таблице 5.

При выборе ячейки нет возможности ее удалить.
Если вы можете удалить фигуру, расскажите, как вы это сделали.

Спасибо.
Джай Шри Кришна!

Вложения

НАРАЯНК991

Ниндзя Excel

Сначала немного предыстории.

Выберите вкладку Таблица 4.

Перейдите в окно Immediate в редакторе Visual Basic и введите следующую команду:

Вы должны увидеть 2 , что говорит о том, что на вкладке "Таблица 4" всего 2 фигуры.

Повторите после того, как сделаете Таблицу 5 активным листом; вы должны увидеть 8.

В таблице 4 представлены две фигуры: Кнопка 1 , Кнопка 2.

8 фигур в таблице 5: кнопка 16 , кнопка 22 , кнопка 24 , кнопка 25 , кнопка 26 , кнопка 30 , кнопка 31 и кнопка 32.

Если вы загрузите прикрепленный файл, вы увидите переименованные кнопки; на вкладке «Главная» щелкните раздел «Найти и выбрать». В раскрывающемся списке нажмите Область выбора.

В правой части экрана теперь будут отображаться все перечисленные мной кнопки; нажмите кнопку 16 в списке, и вы должны увидеть выделенную фигуру; нажмите клавишу DEL, чтобы удалить эту форму. Вы можете использовать эту же процедуру для удаления любой конкретной формы.

Блог Excel, PowerPoint и MS Word, содержащий удобные и креативные фрагменты кода VBA. Эти коды макросов хорошо прокомментированы и полностью функциональны при копировании в модуль.

 TheSpreadsheetGuru

Что делает этот код VBA

Следующий код VBA предоставит вам способ удалить все фигуры из выбранной электронной таблицы. Вы также узнаете, как дальше манипулировать этим кодом, чтобы отфильтровать определенные типы фигур от удаления.

Код VBA:

Тусклый экран как фигура

Для каждой shp в ActiveSheet.Shapes
shp.Delete
Следующая shp

Исключение некоторых фигур

В большинстве случаев вы захотите исключить определенные типы фигур из своего кода. Чаще всего вы можете не захотеть удалять комментарии к ячейкам или диаграммы, поскольку (верите или нет) они считаются фигурами! Вы можете добавить оператор IF для проверки типа каждой фигуры перед ее удалением в цикле. Следующий код показывает, как вы можете написать свой VBA:

Тусклый экран как фигура

Для каждой shp в ActiveSheet.Shapes
Если shp.Type <> msoChart And shp.Type <> msoComment Then shp.Delete
Следующая shp

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

< td>msoCanvas< td>8 < tr>< td>msoTextEffect
ИмяПеречислениеТип
msoAutoShape1< /td>AutoShape
msoCallout2Выноска
20Canvas
msoChart3Диаграмма
msoComment4Комментарий
msoContentApp 27Надстройка Content Office
msoDiagram21Диаграмма
msoEmbeddedOLEObject7Встроенный объект OLE
msoFormControlКонтроль формы
msoFreeform5Свободная форма
msoGraphic28Графика
msoGroup6Группа
msoIgxGraphic24Графика SmartArt
msoInk22Ink
msoInkComment23Ink Comment
msoLine9Line
msoLinkedGraphic29Связанная графика
msoLinkedOLEObject10Связанный OLE объект
msoLinkedPicture11Связанное изображение
msoMedia16Медиа
msoOLEControlObject12Объект управления OLE
msoPicture13Изображение
msoPlaceholder 14Заполнитель
msoScriptAnchor18Привязка скрипта
msoShapeTypeMixed-2Смешанный тип фигуры
msoTable19Таблица
msoTextBox17Текстовое поле
15Текстовый эффект
msoWebVideo26 Веб-видео

Как изменить это в соответствии со своими потребностями?

Возможно, это сообщение не дало вам точного ответа, который вы искали. У всех нас разные ситуации, и невозможно учесть каждую конкретную потребность, которая может возникнуть. Вот почему я хочу поделиться с вами: Мое руководство по быстрому решению ваших проблем! В этой статье я рассказываю о лучших стратегиях, которые я придумал за эти годы, чтобы получить быстрые ответы на сложные проблемы в Excel, PowerPoint, VBA, вы называете это!

Я настоятельно рекомендую вам ознакомиться с этим руководством, прежде чем просить меня или кого-либо еще в разделе комментариев решить вашу конкретную проблему. Я могу гарантировать, что в 9 случаях из 10 одна из моих стратегий даст вам ответы, которые вам нужны, быстрее, чем мне потребуется, чтобы вернуться к вам с возможным решением. Я изо всех сил стараюсь помочь всем, но иногда у меня нет времени ответить на все вопросы (кажется, часов в сутках никогда не бывает достаточно!).

Желаю вам удачи и надеюсь, что это руководство направит вас в правильном направлении!

У меня есть лист с большим количеством фигур. Мне нужно удалить только фигуры, расположенные после строки 15, и фигуры, на которых написано «Изменить размер» и «Очистить все». Фигуры представляют собой прямоугольник: закругленные углы сохраняют текст и имеют назначенный макрос

e.g

Как вы можете видеть на изображении, у меня будут картинки (скриншоты), и их нельзя удалить, я пытаюсь удалить синюю «кнопку».

Эти фигуры на самом деле называются "Изменить размер" и "Очистить все"? Имя фигуры не совпадает с ее текстом.

Какие они формы? Элементы управления ActiveX или формы? Прямоугольники с текстом и назначенным макросом?

3 ответа 3

Попробуйте следующий код, пожалуйста (теперь он удаляет только прямоугольники со скругленными углами в соответствии с вашими условиями):

И версия кода, удаляющая все типы фигур (кроме изображений), я начинаю работать до того, как вы ответили на мой вопрос:


@Fah: Он удаляет все ниже строки 5. Теперь я вижу, что она должна быть ниже 15. Я адаптирую код. Обновил.

однако удалять все не предполагается. Мне нужно удалить только "синие кнопки". Скриншоты должны остаться.

@Fah: если «синие кнопки» представляют собой прямоугольники с закругленными углами, обновленная версия удаляет только такие фигуры. Но, не забудьте обновить страницу! В противном случае вы можете использовать старый код. В своем первоначальном вопросе вы ничего не сказали о том, что другие типы фигур должны быть каким-то образом защищены от удаления. :)

Во-первых, ваше утверждение If неверно, см. комментарий BigBen:

Однако при этом будут проверяться названия фигур, а не их текст. Чтобы получить текст фигуры, вы можете использовать oShape.TextFrame2.TextRange.Text . Однако при этом вы можете столкнуться с двумя небольшими проблемами:

(1) Есть фигуры без текста, например. Фотографий. Это можно проверить с помощью oShape.TextFrame2.HasText

(2) Возможно, текст имеет новую строку в конце или содержит начальные или конечные пробелы, поэтому я предлагаю вам записать содержимое в переменную и использовать функцию Instr:


Не работает. наверное я что-то не так делаю. на листе тоже будут картинки, но только этот прямоугольник: скругленные углы нужно удалить

Читайте также: