ขอบคุณมากๆครับ
แต่ยังเออเร่อครับอาจารย์ผมเพิ่มช่วงเข้าไปแล้ว
มันError ช่วงนี้ครับ
Set TargetRange = ws.Range("A4, D4, A6, D6, A8, D8, " & _
"A13, D13, A15, D15, A17, D17, " & _
"A22, D22, A24, D24, A26, D26, " & _
"A31, D31, A33, D33, A35, D35, " & _
"A40, D40, A42, D42, A44, D44, " & _
"A49, D49, A51, D51, A53, D53, " & _
"A58, D58, A60, D60, A62, D62, " & _
"A67, D67, A69, D69, A71, D71, " & _
"A76, D76, A78, D78, A80, D80, " & _
"A85, D85, A87, D87, A89, D89")
Code: Select all
Sub InsertPictures()
Dim p As Object
Dim picPaths As FileDialogSelectedItems
Dim ws As Worksheet
Dim TargetRange As Range
Dim cell As Range
Dim i As Integer
Set ws = ThisWorkbook.Sheets("Sheet1")
Set TargetRange = ws.Range("A4, D4, A6, D6, A8, D8, " & _
"A13, D13, A15, D15, A17, D17, " & _
"A22, D22, A24, D24, A26, D26, " & _
"A31, D31, A33, D33, A35, D35, " & _
"A40, D40, A42, D42, A44, D44, " & _
"A49, D49, A51, D51, A53, D53, " & _
"A58, D58, A60, D60, A62, D62, " & _
"A67, D67, A69, D69, A71, D71, " & _
"A76, D76, A78, D78, A80, D80, " & _
"A85, D85, A87, D87, A89, D89")
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Select Pictures"
.Filters.Clear
.Filters.Add "Images", "*.jpg; *.jpeg; *.png; *.bmp; *.gif"
.AllowMultiSelect = True ' Allow multiple file selection
If .Show = -1 Then
Set picPaths = .SelectedItems
Else
Exit Sub
End If
End With
i = 1 ' Initialize index for target range
For Each cell In TargetRange.Cells
With cell
.Activate
Set p = .Parent.Shapes.AddPicture( _
Filename:=picPaths(i), _
linktofile:=False, _
savewithdocument:=True, _
Left:=.Left, _
Top:=.Top, _
Width:=.Width, _
Height:=.Height)
End With
i = i + 1 ' Move to the next picture
If i > picPaths.Count Then Exit Sub
Next cell
End Sub