ДЛД Пользователь Сообщений: 23 |
Добрый день! В ячейке xls есть рисунок. Как через vba узнать его Item чтобы потом обратиться к нему через Index, например ActiveSheet.Shapes(4)?. |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#2 09.05.2018 10:50:49
Не верное утверждение. В отличии от Word, в ячейке не размещаются рисунки. Они лежат поверх неё. Следовательно это у рисунка нужно спрашивать — над какой ячейкой он лежит. BottomRightCell и TopLeftCell в помощь. |
||
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
Андрей VG, Андрей, приветвую, с Праздником. Опередили чуток. ДЛД, по сути Вам придется сперва перебрать все объекты и проверить на то, что они находятся в области целевой ячейки, и если да, то получить , ID, имя … и тогда с ним работать. По вопросам из тем форума, личку не читаю. |
ДЛД Пользователь Сообщений: 23 |
Андрей VG
, скажите чтобы узнать Item рисунка «лежащего над ячейкой» — правильным ли будет алгоритм: |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#5 09.05.2018 11:18:17 В принципе, видится такой алгоритм.
Привет, Михаил. |
||
ДЛД Пользователь Сообщений: 23 |
Андрей VG
, «смысл задачи» такой. На листе (только в одном столбце «B») в ячейках есть текст и рисунки, но имеются также пустые ячейки в этом столбце. Циклом For удаляются пустые строки, но только те, над которыми не «лежат» рисунки. Через Item я хотел узнать «габариты» рисунка (BottomRightCell.Row) чтобы под ним не удалять строки |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
Ну, тогда можно чуть по другому. |
ДЛД Пользователь Сообщений: 23 |
Андрей VG
, спасибо. Буду пытаться. |
ДЛД Пользователь Сообщений: 23 |
Поставленную задачу (не ту что в заголовке) можно решить так: сначала удалить ВСЕ строки с пустыми ячейками в столбце «B», а потом добавить строки ТОЛЬКО «под» рисунками. |
ДЛД Пользователь Сообщений: 23 |
Почему-то не загрузился файл |
vikttur Пользователь Сообщений: 47199 |
#11 10.05.2018 22:54:25
Размер какой? Код в сообщении нужно оформлять с посмощью кнопки <…>. Попробуйте, не кусается. |
||
0 / 0 / 0 Регистрация: 22.11.2011 Сообщений: 18 |
|
1 |
|
01.05.2012, 18:39. Показов 15828. Ответов 5
Проблема такая. Программа (макрос) в EXCEL генерирует несколько документов, в которые автоматически вставляет подпись (ФИО выбирается в форме, в зависимости от этого на листе с образцами подписей в виде рисунков .GIF выбирается нужная подпись и вставляется в документ). Рисунок на листе с образцами меньше размера ячейки, поэтому получается делать так: в буфер просто копируется выбранная по Select ячейка, а затем выбирается на нужном листе нужная ячейка и делается ActiveSheet.Paste. Образцы подписей есть не для всех ФИО в списке, если ячейка не содержит образец подписи — так и не вставляется ничего, ошибка не генерируется.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
01.05.2012, 18:39 |
5 |
Watcher_1 356 / 162 / 27 Регистрация: 21.06.2011 Сообщений: 350 |
||||
01.05.2012, 21:16 |
2 |
|||
Наличие рисунка можно определить так
0 |
SlavaRus 1121 / 229 / 36 Регистрация: 15.03.2010 Сообщений: 698 |
||||
02.05.2012, 09:25 |
3 |
|||
Наверное самое простое в момент загрузки рисунка ячейке присвоить булево значение. True рисунок есть, False нет.
1 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
02.05.2012, 11:19 |
4 |
После вставки рисунок желательно обработать (слегка сместить, повернуть и т.д.), но нужно знать — есть ли он? Обрабатывайте, как будто рисунок есть, но включите обработку ошибок (On Error …).
0 |
0 / 0 / 0 Регистрация: 22.11.2011 Сообщений: 18 |
|
06.05.2012, 18:20 [ТС] |
5 |
Всем большое спасибо!
0 |
1121 / 229 / 36 Регистрация: 15.03.2010 Сообщений: 698 |
|
07.05.2012, 11:08 |
6 |
Конструкция Cell.Worksheet.Shapes — это означает, что у объекта типа Range есть такой метод? Такого метода у Range нет. Объекты Shape лежат на листе, Cell.Worksheet — обращение к листу на котором находится ячейка и соответственно Shapes. В противном случае будет искать в рисунках на активном листе, а ячейка Cell может быть на другом листе. И вообще, в приведенном примере фунции если я передам ей как аргумент область Range (непример, одну ячейку), поиск рисунков будет вестись только в ней, а не во всем листе? Функция пробегает по всем объектам Shapes на листе и если это рисунок сравнивает адрес ячейки Cell в параметре фукции с адресом левого верхнего угла рисунка т.к. Рисунок на листе с образцами меньше размера ячейки… Проверяет одну ячейку и все рисунки. Если передать в функцию область будет бессмысленный результат. По условию вроде надо было проверять одну ячейку.
1 |
Excel’s lookup functions recently welcomed the addition of XLOOKUP and XMATCH. However, neither these new functions or the existing ones don’t support image lookup. In this guide, we’re going to show you how to make image lookup in Excel.
Download Workbook
Preparing the images
First, we need to place the images into corresponding cells. Make sure that each image is completely inside their cells — there shouldn’t be any overflow. Otherwise, you can only display the part of the image that fits inside of the cell area.
Setting up a user interface for image lookup
At this point, we are ready to build an interface for image lookup. In our example, we are going to update an image, based on a value from a dropdown selection.
To make the formulas and references easier to read we will using the names in the table, which were also used to generate named ranges.
- Select the cell containing the dropdown
- Activate the Data tab in the Ribbon
- Click on the Data Validation icon
- In the Data Validation dialog, set Allow to List
- Select the names in the table under Source
- Click OK
The dynamic image
This is the last and the most important step for doing image lookups in Excel. Although the lookup formulas do not support images, some of them can actually support this when the formula is used within an image.
Unfortunately, you can not simply click on an image and type in a formula. However, you can refer a named range, and that named range can contain a formula.
Start by opening the New Name dialog under Formulas > Defined Names.
Give a friendly name to the input, and move onto to the Refers to section to enter the lookup formula. You can use either XLOOKUP or INDEX-MATCH formulas. If your version of Excel doesn’t have support for these formulas, use the INDEX-MATCH combination instead — VLOOKUP won’t work with this method.
Choose one of the following based on your data:
=XLOOKUP(X!$C$2,Data!$B$3:$B$6,Data!$C$3:$C$6)=INDEX(Data!$C$3:$C$6,MATCH(IM!$C$2,Data!$B$3:$B$6,0))
Place an image where you want to display your dynamic content. The most important thing here is the size of the image: It needs to fit in the cell.
After placing the image, click on the image and activate the formula bar. Enter the name you created for the lookup formula.
Now, every time the Name dropdown is updated, the image will be updated as well. Excel simply returns an image of the cell into the image object.
На чтение 5 мин Опубликовано 07.01.2021
При составлении таблиц в Excel часто требуется поставить картинку в ту или иную ячейку. Существует несколько распространенных методов выполнения поставленной задачи. Основные из них будут рассмотрены в данной статье.
Содержание
- Особенности прикрепления изображений
- Как вставить картинку в Excel
- Как отредактировать рисунок
- Как прикрепляется картинка к ячейке
- Защита листа
- Установка рисунка в примечании
- Заключение
Особенности прикрепления изображений
Перед тем как размещать фото в Excеl, важно изучить несколько особенностей процедуры:
- Изображение, которое пользователь хочет вставить, должно размещаться на жестком диске или на съемном носителе, который подсоединен к PC.
- Рисунок, вставляемый в Эксель, сразу не привяжется к определенной ячейке, а будет располагаться на рабочем листе.
- Некоторые фотографии могут потерять в качестве после размещения в табличке.
Как вставить картинку в Excel
В первую очередь необходимо вставить выбранный рисунок на рабочее поле программы, а затем привязывать его к конкретному элементу таблицы. Первоначально надо проделать следующие действия:
- Определиться с изображением и разместить его в любом месте своего ПК.
- Открыть MicrosoftOfficeExcel.
- Кликнуть ЛКМ по элементу, в котором надо разместить картинку.
- Перейти в раздел «Вставка» и щелкнуть по слову «Рисунок».
- Указывать путь к расположению картинки на компьютере, выбрав соответствующий раздел диска в открывшемся окне, а затем нажать на кнопку «Вставить».
- Удостовериться, что изображение вставилось и занимает некоторую область рабочего поля программы.
Обратите внимание! На этом этапе рисунок еще не будет прикреплен к определенному элементу табличного массива.
Как отредактировать рисунок
Теперь необходимо отредактировать фото, вставленное в Excel, привести его к «надлежащему» виду. Действовать нужно так:
- Кликнуть ПКМ по любому месту, вставленной ранее картинки и в меню контекстного типа нажать по строке «Размер и свойства».
- В отобразившемся окошке возможно поменять параметры изображения, обрезать его, наложить различные эффекты и т.д. Здесь пользователь выполняет действия по личному усмотрению.
- Закрывать окошко «Размер и свойства» и кликнуть по надписи «Работа с рисунками» в верхней панели инструментов программы.
- Теперь важно уменьшать параметры картинки так, чтобы она разместилась в выбранной ячейке табличного массива. Для этой цели границы фотографии можно сдвинуть ЛКМ.
Как прикрепляется картинка к ячейке
После уменьшения размеров изображение все еще не будет прикреплено к элементу табличного массива. Для закрепления рисунка придется сделать ряд дополнительных манипуляций. Далее будут рассмотрены самые распространенные способы прикрепления фото к ячейке в Microsoft Office Excel.
Важно! Каждый способ актуален для любой версии программы.
Защита листа
Рабочий лист в Экселе можно обезопасить от вносимых изменений, и тогда изображение зафиксируется в определенном положении. Метод заключается в выполнении простых шагов:
- Передвинуть отредактированное фото в табличный элемент с помощью ЛКМ.
- Кликнуть ПКМ по фото и нажать по строчке «Размер и свойства».
- В меню «Размер» проверить выставленные параметры. Их значения не должны превышать размеров ячейки. Также надо поставить галочки напротив строк «Сохранить пропорции» и «Относительно исходного размера».
- Войти во вкладку «Свойства». Здесь необходимо поставить тумблер рядом со строкой «Перемещать и изменять объект вместе с ячейками». Напротив параметров «Защищаемый объект» и «Выводить объект на печать» надо также поставить галочки.
- Закрыть окно, выделить рабочее пространство целиком сочетанием кнопок «Ctrl+A» и перейти в раздел «Формат ячеек», нажав по любому месту листа ПКМ.
- В новом окошке в разделе «Защита» снять галку с пунктика «Защищаемая ячейка», затем выделить ячейку с размещенной картинкой и опять поставить эту галочку.
Дополнительная информация! После проведения подобных манипуляций изображение закрепится в конкретном элементе табличного массива и защитится от каких-либо изменений.
Установка рисунка в примечании
Картинка, размещенная в примечании Excel, автоматически будет закреплена в ячейке. Способ реализуется следующим образом:
- Щелкнуть ПКМ по нужному объекту и в меню указывать на вариант «Вставить примечание».
- В окне записи примечания еще раз нажать ПКМ и указать на строчку «Формат примечания».
- В появившемся окошке перейти в раздел «Цвета и линии», затем развернуть вкладку «Цвет» и нажать по кнопке «Способы заливки».
- Откроется еще одно окно, в котором надо кликнуть по последней вкладке в списке инструментов сверху и щелкнуть по слову «Рисунок».
- Указать путь к расположению рисунка на ПК и нажать по слову «Вставить».
- Теперь фото добавится в окошко «Способы заливки». Пользователю останется поставить галочку рядом с пунктом «Сохранять пропорции рисунка» и нажать «ОК».
- Вернуться в окно «Формат примечания» и в разделе «Защита» снять галочку со строчки «Примечаемый объект».
- В этом же окне переместиться во вкладку «Свойства» и поставить тумблер в поле «Перемещать и изменять объект вместе с ячейками», после чего кликнуть «ОК».
Обратите внимание! Рассмотренный метод привязывает картинку к примечанию конкретной ячейки, но накладывает ряд ограничений на элемент табличного массива.
Заключение
Таким образом, закрепить изображения в ячейках Excel можно быстро с помощью встроенных в программу инструментов. Рассмотренные выше способы прикрепления помогут избежать проблем при выполнении поставленной задачи.
Оцените качество статьи. Нам важно ваше мнение:
В Excel легко найти и выделить все изображения на активном листе. Но знаете ли вы, как в Excel проверить, есть ли в ячейке изображение? Вам может помочь метод, описанный в этой статье.
Проверьте, есть ли в ячейке изображение с кодом VBA
Проверьте, есть ли в ячейке изображение с кодом VBA
Приведенный ниже код VBA может помочь вам проверить, содержит ли ячейка изображение. Пожалуйста, сделайте следующее.
1. Откройте рабочий лист, в котором необходимо проверить, существует ли изображение в указанной ячейке, затем нажмите кнопку другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте код VBA в окно кода.
Код VBA: проверьте, содержит ли ячейка изображение в Excel
Sub CellHasPicture()
Dim xRg As Range
Dim xShape As Shape
Dim xFlag As Boolean
On Error Resume Next
Set xRg = Application.InputBox("Please enter the cell address:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
xFlag = False
For Each xShape In ActiveSheet.Shapes
If xShape.TopLeftCell.Address = xRg.Address Then
xFlag = True
End If
Next
If xFlag Then
MsgBox "Image exists!"
Else
MsgBox "Image does not exist"
End If
End Sub
3. Press the F5 key to run the code. In the popping up Kutools for Excel dialog box, please enter the cell which you want to check if it contains a picture, and then click the OK button. See screenshot:
4. Then a dialog box will pop up as below screenshot shown if a picture exists or not in the specified cell.
Related Articles:
- How to automatically change all pictures to move and size with cells in Excel?
- How to center a picture in an Excel cell?
- How to insert image or picture dynamically in cell based on cell value in Excel?
- How to enlarge image when click on it in Excel?
The Best Office Productivity Tools
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
- Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
- Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range…
- Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges…
- Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
- Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
- Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments…
- Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
- Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF…
- More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
Read More… Free Download… Purchase…
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Read More… Free Download… Purchase…
Comments (0)
No ratings yet. Be the first to rate!