VB6插入图片到 Excel 2007 指定单元格

VBcodeSetmyxls=CreateObject("Excel.Application")myxls.Visible=Truemyxls.Workbooks.Ope... VB code

Set myxls = CreateObject("Excel.Application")
myxls.Visible = True
myxls.Workbooks.Open App.Path & "\Template.xls"
myxls.ActiveSheet.Range(A3).Select '选定单元格
With myxls.ActiveSheet.Pictures.Insert("C:\Pic.jpg") '插入到选定的单元格中
.Width = 150
.Height = 200
End With

测试环境:
XP + Office 2003
XP + Office 2007

Office 2003中没有问题,Office 2007中,不能对应到指定单元格,会错位。
Office 模板是100%显示比例

还有 使用worksheet.shapes.addpicture方法只能指定坐标,我需要的是指定单元格。

求助各位达人,在线等候...
首先感谢 Mrpine 的回复,Set Target = .Cells(i, 1) 这句是什么意思?这句会出错。
展开
 我来答
绿衣人敲门
2015-10-17 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63766
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部

可以用vb6代码完成:

1、先编制表格:

2、在表格里编写触发宏代码:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim photoname As String


If Target.Row = 3 And Target.Column > 3 And Target.Column < 6 Then

On Error Resume Next     '忽略错误继续执行VBA代码,避免出现错误消息

Application.ScreenUpdating = False

Application.EnableEvents = False

For Each shp In Sheets("查询表").Shapes

    If shp.Type <> 8 And shp.Type <> 12 Then

        shp.Delete

    End If

Next

    photoname = Cells(3, 4) & ".JPG"

    Cells(3, "L").Select

    ActiveSheet.Pictures.Insert(ActiveWorkbook.Path & "\照片\" & photoname).Select        '当前文件所在目录下以单元内容为名称的.jpg图片

    With Selection

        ta = Range(Cells(3, "L").MergeArea.Address).Height    '单元高度

        tb = Range(Cells(3, "L").MergeArea.Address).Width      '单元宽度

        tc = .Height    '图片高度

        td = .Width     '图片宽度

        tm = Application.WorksheetFunction.Min(ta / tc, tb / td)    '单元与图片之间长宽差异比例的最小值

        .Top = ActiveCell.Top + 2

        .Left = ActiveCell.Left + 1

        .Height = .Height * tm * 0.98 '按比例调整图片宽度

        .Width = .Width * tm * 0.98   '按比例调整图片高度

    End With

Cells(3, 4).Select

Application.EnableEvents = True

Application.ScreenUpdating = True

End Sub

3、在当前目录下建个名为”照片“的子目录,里面存有以姓名为名称的.jpg格式的照片

4、在姓名后单元输入姓名后,就能自动插入图片了

柔软的Bp
科技发烧友

2010-08-05 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:67%
帮助的人:8756万
展开全部
EXCEL表格,A列是产品图片,B列是货号,能否在B列输入货号(如123)的同时把放在D:\tmp目录下的相应货号的JPG图片调出来,且大小与A列单元格完全相符.
用vba,按下ALT+F11,菜单:插入-模块,复制下面代码至代码框.按F5即可.
Sub addpicture()

Dim FirstRow, LastRow As Integer, FileType As String
FirstRow = Sheet1.UsedRange.Row
LastRow = FirstRow + Sheet1.UsedRange.Rows.Count - 1
FileType = InputBox("输入你的图片的后缀名", "输入图片格式", "jpg")
For i = FirstRow To LastRow
Numb = Cells(i, 2).Value
With ActiveSheet
.Pictures.Insert("D:\tmp\" & Numb & "." & FileType).Select
Set Target = .Cells(i, 1)
End With
With Selection
.Top = Target.Top + 1
.Left = Target.Left + 1
.Width = Target.Width - 1
.Height = Target.Height - 1
End With
Next i
End Sub

说明,图片文件夹 图片文件名与输入货号一致
看下这个好使不?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友36f0614
2012-07-22
知道答主
回答量:34
采纳率:0%
帮助的人:14.6万
展开全部
求知道楼主最后解决办法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式