excelperfect Q:我想將一些圖片按順序插入到工作表單元格中,例如從工作表當(dāng)前單元格開始,向左每行插入3張圖片,然后轉(zhuǎn)到下一行再插入3張圖片。如下圖1所示,當(dāng)前單元格為B2,當(dāng)我選擇了想要插入的圖片后,從該單元格開始,第2行的3列單元格分別插入3張圖片,然后轉(zhuǎn)到下一行自左至右再插入3張圖片,依此類推,直至所有圖片都插入到工作表中。 圖1 A:可以使用一段VBA代碼實(shí)現(xiàn)。 Sub InsertPictures() Dim PicList() As Variant Dim PicFormat As String Dim rngAs Range Dim sShape As Shape Dim xColIndex As Long Dim xRowIndex As Long Dim xStartColIndex As Long Dim lLoop As Long On Error Resume Next '選擇并獲取圖片 PicList =Application.GetOpenFilename(PicFormat, MultiSelect:=True) '獲取當(dāng)前單元格所在的位置 xColIndex= Application.ActiveCell.Column xRowIndex= Application.ActiveCell.Row xStartColIndex = xColIndex If IsArray(PicList) Then '遍歷圖片列表并在工作表中插入圖片 For lLoop = LBound(PicList) To UBound(PicList) '獲取并賦值單元格變量 Set rng = Cells(xRowIndex, xColIndex) '插入圖片 Set sShape = ActiveSheet.Shapes.AddPicture(PicList(lLoop), msoFalse,msoCTrue, rng.Left, rng.Top, rng.Width, rng.Height) '控制圖片插入位置 xColIndex = xColIndex + 1 If xColIndex = xStartColIndex + 3 Then xRowIndex = xRowIndex + 1 xColIndex = xColIndex - 3 End If Next lLoop End If End Sub 當(dāng)然,你可以修改上述程序代碼中的 If xColIndex = xStartColIndex + 3 Then xRowIndex = xRowIndex + 1 xColIndex= xColIndex - 3 End If 用來(lái)控制在工作表中顯示圖片的列數(shù)。 |
|
來(lái)自: hercules028 > 《VBA》