Я создал инструмент, использующий VBA, который принимает данные электронной таблицы и генерирует отчет в формате PDF. Часть этого отчета включает изображения, размещенные в Интернете, со ссылкой на эти изображения, хранящиеся в ячейке.
Часть кода этого инструмента загружает эти изображения и размещает их над ячейкой, содержащей ссылку, форматируя их в соответствии с заданными размерами ячейки (100 x 100 пикселей)
Когда каждая ячейка в столбце изображения имеет ссылку на изображение, код работает нормально. Однако не все позиции в отчете имеют прикрепленное изображение.
Когда это происходит, последнее изображение перед пустой ячейкой будет помещено в последнюю пустую ячейку перед следующей ссылкой на изображение, по существу «выпадающее» в неправильном месте в отчете.
Я пытался возиться с кодом, но безрезультатно. Я придумал временное исправление форматирования ячеек с помощью IFBLANK (ссылка на изображение белого квадрата), чтобы этот белый квадрат вставлялся, чтобы создать вид пустой ячейки, однако для этого необходимо, чтобы пользователь сохранил изображение белого цвета. квадрат и ссылаться на него прямо в коде, или для белого квадрата, который будет размещен на постоянно активном сайте, что мне неудобно. Мне бы хотелось, чтобы этот инструмент был как можно более надежным в будущем, чтобы другие могли продолжать его использовать.
'Download Images
Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Set Rng = Sheets("POMEC Report").Range(Sheets("POMEC DATA").Range("R6"))
For Each Cell In Rng
filenam = Cell
ActiveSheet.Pictures.Insert(filenam).Select
Set Pshp = Selection.ShapeRange.Item(1)
If Pshp Is Nothing Then GoTo lab
xCol = Cell.Column
Set xRg = Cells(Cell.Row, xCol)
With Pshp
.LockAspectRatio = msoFalse
.Width = 100
.Height = 100
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
End With
lab:
Set Pshp = Nothing
Next
У меня есть вспомогательная ячейка на другой вкладке, которая вычисляет последнюю строку данных в отчете, чтобы я мог сделать диапазон динамическим (отчет POMEC R6), но эта ошибка возникает, даже если этот диапазон жестко задан.
Что я делаю не так, чтобы вызвать это? Любая помощь с благодарностью!