分享

Excel批量自动插入图片

 星海沙 2013-12-11

示例代如下:

Sub insertPic()  

    Dim i As Integer 

    Dim FilPath As String 

    Dim rng As Range  

    Dim s As String 

    With Sheet1 

        For i = 3 To .Range("a65536").End(xlUp).Row 

            FilPath = ThisWorkbook.Path & "¥" & .Cells(i, 1).Text & ".jpg" 

 If Dir(FilPath) <> "" Then 

                .Pictures.Insert(FilPath).Select

                Set rng = .Cells(i, 3) 

                With Selection 

                    .Top = rng.Top + 1 

                    .Left = rng.Left + 1

                    .Width = rng.Width - 1 

                    .Height = rng.Height - 1 

                End With 

            Else 

                s = s & Chr(10) & .Cells(i, 1).Text

            End If 

        Next

        .Cells(3, 1).Select 

    End With 

    If s <> "" Then 

        MsgBox s & Chr(10) & "没有照片!"

    End If 

End Sub 

解析: 

insertPic程使用

Insert

方法在工作表中插入片。 

7行代码开

For...Next,循终值由工作表中A元格的行数所决定。

 

8行代字符串FilPath保存A列名称元格所对应片文件的路径和文件名,本例中片文件的文件名A列中的名称一致。

 

9行到第11行代使用Dir函数在同一文件A元格中的名称相对应片文件,如果对应片文件存在使用Insert方法将片插入到工作表中,并将C列的元格赋给变rng

Dir函数返回一个String,用以表示一个文件名、目名或文件

名称,它必与指定的模式或文件属性、或磁相匹配。如

果已没有合乎条件的文件,Dir函数会返回一个零度字符串 

("") 

12行到第17行代,当片片插入到工作表是插入到活

动单元格的,此片的Top属性和Left属性将片移C

对应元格中,并置其Width属性和Height属性使其适所在元格的大小。 

1819行代如果在同一文件中没有与A元格对应片文件,使用字符串s保存没有片文件的名称。 

24行到第26行代如果字符串s不等于空白明文件中缺少片文件,使用消息框提示。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约