Я використовував сценарій VBA для імпорту зображень у клітинку на основі URL-адреси. Це добре працює, але зображення зникає, якщо я видаляю чи зміню посилання. За допомогою імпорту зображень Kutools зображення вставляється в клітинку як постійне зображення?
Я маю намір надіслати електронну таблицю Excel комусь, хто не матиме доступу до мого локального жорсткого диска. Це означає, що зображення зникнуть.
Ось VBA, який я зараз використовую: у мене також виникають проблеми з копіюванням і вставленням у Word за допомогою цього VBA. Я можу скопіювати та вставити лише близько десяти зображень у Word, що потребує часу, якщо у вас багато зображень.
Sub AddImageToRight()
Dim OrigSelection As Range
Установіть OrigSelection = Selection
Для кожної клітинки у виділенні
ThisPath = cell.Value
HoldRight = cell.Offset(0, 1).Value
cell.Offset(0, 1).Clear
Err.Clear
On Error Resume Next
cell.Offset(0, 1).Select
Selection.InsertPictureInCell (ThisPath)
Якщо Err.Number <> 0, то Selection.Value = HoldRight
Наступна клітинка
OrigSelection.Select
End Sub
~~~~~~~~~~~~~~~~~~~~~~~
Цей замінив URL-адресу зображенням, але у мене все одно виникла проблема з копіюванням і вставленням у Word. Крім того, я втратив свою URL-адресу в клітинці, яка була замінена зображенням.
Sub ReplacePathWithImage()
Dim OrigSelection As Range
Установіть OrigSelection = Selection
Для кожної клітинки у виділенні
ThisPath = cell.Value
клітинка.Очистити
Err.Clear
On Error Resume Next
клітинка.Вибер
Selection.InsertPictureInCell (ThisPath)
If Err.Number <> 0 Then cell.Value = ThisPath
Наступна клітинка
OrigSelection.Select
End Sub
~~~~~~~~~~~~~~~~~~~~~
Ось те, що я використовував раніше, але зображення не вставлялося в клітинку. Мені довелося вручну клацати кожне зображення, щоб вставити його в потрібну комірку. Це було близько, але це був біль. Це проблема, якщо у вас є понад 200 плаваючих зображень у Excel, які потрібно зіставити з коміркою ліворуч.
Sub ImportPicturesFromColumn()
Dim ws As Worksheet
Розтушовувати шлях зображення як рядок
Dim pic As Picture
Dim picWidth As Double
Dim picHeight As Double
Dim maxWidth як Double
Dim maxHeight As Double
Dim aspectRatio As Double
Яскрава комірка як діапазон
Dim startCell As Range
Dim targetCell As Range
' Встановіть робочий аркуш на "CA-ExcelExport"
Установіть ws = ThisWorkbook.Sheets("CA-ExcelExport")
' Встановіть максимальну ширину та висоту зображення
maxWidth = 420 ' Встановіть бажану максимальну ширину
maxHeight = 420 ' Встановіть бажану максимальну висоту
' Встановіть початкову клітинку для списку шляхів зображення
Set startCell = ws.Range("K4") ' Почати читання шляхів із клітинки K4
' Перебирайте кожну клітинку в стовпці, доки не буде знайдено порожню клітинку
Для кожної комірки в ws.Range(startCell, ws.Cells(ws.Rows.Count, startCell.Column).End(xlUp))
picturePath = cell.Value
' Зупиніть обробку, якщо виявлено порожню клітинку
Якщо picturePath = "" Тоді
Вихід для
End If
' Додайте малюнок до аркуша
Встановити pic = ws.Pictures.Insert(picturePath)
' Отримайте оригінальні розміри малюнка
picWidth = pic.Width
picHeight = pic.Height
' Обчисліть співвідношення сторін
aspectRatio = picWidth / picHeight
' Налаштуйте розмір зображення, щоб зберегти співвідношення сторін
Якщо picWidth > maxWidth Або picHeight > maxHeight Тоді
If (maxWidth / maxHeight) > aspectRatio Then
picHeight = максимальна висота
picWidth = maxHeight * aspectRatio
Ще
picWidth = максимальна ширина
picHeight = maxWidth / aspectRatio
End If
End If
' Встановіть нові розміри
pic.Width = picWidth
pic.Height = picHeight
' Визначте цільову комірку для зображення
Set targetCell = ws.Cells(cell.Row, "Q") ' Розмістіть зображення у стовпці H, у тому ж рядку, що й шлях до файлу
' Розмістіть зображення в цільовій комірці
pic.Top = targetCell.Top
pic.Left = targetCell.Left
За бажанням змініть розмір комірки, щоб відповідати малюнку
targetCell.RowHeight = Application.Max(targetCell.RowHeight, pic.Height)
targetCell.ColumnWidth = Application.Max(targetCell.ColumnWidth, pic.Width / 5.7) ' Налаштувати ширину стовпця
Наступна клітинка
End Sub
Я маю намір надіслати електронну таблицю Excel комусь, хто не матиме доступу до мого локального жорсткого диска. Це означає, що зображення зникнуть.
Ось VBA, який я зараз використовую: у мене також виникають проблеми з копіюванням і вставленням у Word за допомогою цього VBA. Я можу скопіювати та вставити лише близько десяти зображень у Word, що потребує часу, якщо у вас багато зображень.
Sub AddImageToRight()
Dim OrigSelection As Range
Установіть OrigSelection = Selection
Для кожної клітинки у виділенні
ThisPath = cell.Value
HoldRight = cell.Offset(0, 1).Value
cell.Offset(0, 1).Clear
Err.Clear
On Error Resume Next
cell.Offset(0, 1).Select
Selection.InsertPictureInCell (ThisPath)
Якщо Err.Number <> 0, то Selection.Value = HoldRight
Наступна клітинка
OrigSelection.Select
End Sub
~~~~~~~~~~~~~~~~~~~~~~~
Цей замінив URL-адресу зображенням, але у мене все одно виникла проблема з копіюванням і вставленням у Word. Крім того, я втратив свою URL-адресу в клітинці, яка була замінена зображенням.
Sub ReplacePathWithImage()
Dim OrigSelection As Range
Установіть OrigSelection = Selection
Для кожної клітинки у виділенні
ThisPath = cell.Value
клітинка.Очистити
Err.Clear
On Error Resume Next
клітинка.Вибер
Selection.InsertPictureInCell (ThisPath)
If Err.Number <> 0 Then cell.Value = ThisPath
Наступна клітинка
OrigSelection.Select
End Sub
~~~~~~~~~~~~~~~~~~~~~
Ось те, що я використовував раніше, але зображення не вставлялося в клітинку. Мені довелося вручну клацати кожне зображення, щоб вставити його в потрібну комірку. Це було близько, але це був біль. Це проблема, якщо у вас є понад 200 плаваючих зображень у Excel, які потрібно зіставити з коміркою ліворуч.
Sub ImportPicturesFromColumn()
Dim ws As Worksheet
Розтушовувати шлях зображення як рядок
Dim pic As Picture
Dim picWidth As Double
Dim picHeight As Double
Dim maxWidth як Double
Dim maxHeight As Double
Dim aspectRatio As Double
Яскрава комірка як діапазон
Dim startCell As Range
Dim targetCell As Range
' Встановіть робочий аркуш на "CA-ExcelExport"
Установіть ws = ThisWorkbook.Sheets("CA-ExcelExport")
' Встановіть максимальну ширину та висоту зображення
maxWidth = 420 ' Встановіть бажану максимальну ширину
maxHeight = 420 ' Встановіть бажану максимальну висоту
' Встановіть початкову клітинку для списку шляхів зображення
Set startCell = ws.Range("K4") ' Почати читання шляхів із клітинки K4
' Перебирайте кожну клітинку в стовпці, доки не буде знайдено порожню клітинку
Для кожної комірки в ws.Range(startCell, ws.Cells(ws.Rows.Count, startCell.Column).End(xlUp))
picturePath = cell.Value
' Зупиніть обробку, якщо виявлено порожню клітинку
Якщо picturePath = "" Тоді
Вихід для
End If
' Додайте малюнок до аркуша
Встановити pic = ws.Pictures.Insert(picturePath)
' Отримайте оригінальні розміри малюнка
picWidth = pic.Width
picHeight = pic.Height
' Обчисліть співвідношення сторін
aspectRatio = picWidth / picHeight
' Налаштуйте розмір зображення, щоб зберегти співвідношення сторін
Якщо picWidth > maxWidth Або picHeight > maxHeight Тоді
If (maxWidth / maxHeight) > aspectRatio Then
picHeight = максимальна висота
picWidth = maxHeight * aspectRatio
Ще
picWidth = максимальна ширина
picHeight = maxWidth / aspectRatio
End If
End If
' Встановіть нові розміри
pic.Width = picWidth
pic.Height = picHeight
' Визначте цільову комірку для зображення
Set targetCell = ws.Cells(cell.Row, "Q") ' Розмістіть зображення у стовпці H, у тому ж рядку, що й шлях до файлу
' Розмістіть зображення в цільовій комірці
pic.Top = targetCell.Top
pic.Left = targetCell.Left
За бажанням змініть розмір комірки, щоб відповідати малюнку
targetCell.RowHeight = Application.Max(targetCell.RowHeight, pic.Height)
targetCell.ColumnWidth = Application.Max(targetCell.ColumnWidth, pic.Width / 5.7) ' Налаштувати ширину стовпця
Наступна клітинка
End Sub
- Сторінки:
- 1
На цю посаду ще немає відповідей.