как в Excel вставить много картинок?
Скриптом, вестимо
сразу видно, что не знаешь )
Гонишь. Знаю. Картинку в ячейку вставить нельзя, а вот как вставить набор картинок в документ - знаю.
Я имею в виду, не просто на лист положить - а если я сделаю
то она скопируется..
ActiveSheet.Range("A1").Copy
ActiveSheet.Range("B2").PasteSpecial(...)
---
Insert pictures
With the macro below you can insert pictures at any range in a worksheet. The
picture can be centered horizontally and/or vertically.
Sub TestInsertPicture
InsertPicture "C:\FolderName\PictureFileName.gif", range("D10" True, True
End Sub
Sub InsertPicture(PictureFileName As String, TargetCell As range, CenterH As Boolean, CenterV As Boolean)
' inserts a picture at the top left position of TargetCell
' the picture can be centered horizontally and/or vertically
Dim p As Object, t As double, l As double, w As double, h As double
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
If Dir(PictureFileName) = "" Then Exit Sub
' import picture
set p = ActiveSheet.Pictures.Insert(PictureFileName)
' determine positions
With TargetCell
t = .Top
l = .Left
If CenterH Then
w = .Offset(0, 1).Left - .Left
l = l + w / 2 - p.Width / 2
If l < 1 Then l = 1
End If
If CenterV Then
h = .Offset(1, 0).Top - .Top
t = t + h / 2 - p.Height / 2
If t < 1 Then t = 1
End If
End With
' position picture
With p
.Top = t
.Left = l
End With
set p = Nothing
End Sub
With the macro below you can insert pictures and fit them to any range in a
worksheet.
Sub TestInsertPictureInrange
InsertPictureInrange "C:\FolderName\PictureFileName.gif", range("B5:D10")
End Sub
Sub InsertPictureInrange(PictureFileName As String, TargetCells As range)
' inserts a picture and resizes it to fit the TargetCells range
Dim p As Object, t As double, l As double, w As double, h As double
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
If Dir(PictureFileName) = "" Then Exit Sub
' import picture
set p = ActiveSheet.Pictures.Insert(PictureFileName)
' determine positions
With TargetCells
t = .Top
l = .Left
w = .Offset(0, .Columns.Count).Left - .Left
h = .Offset(.rows.Count, 0).Top - .Top
End With
' position picture
With p
.Top = t
.Left = l
.Width = w
.Height = h
End With
set p = Nothing
End Sub
Это не вставка в ячейку, это вставка в документ. Стоит тебе сдвинуть сетку ячеек, и ты в этом убедишься
В смысле, ясно, что убедишься - ты это и так, ессно, знаешь. Убедишься, что разница есть и проявляется в таких частых действиях над документом, как движение/ресайз ячеек.
Оставить комментарий
alko21
чтобы автоматически, скажем, из файла 1.jpg в ячейку R1, 2.jpg - R2 ....