一段显示相片的EXECL表,显示相片的Vba代码求助。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$6" Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
With Sheet5
.Pictures(1).Delete
.Range("a1").Select
.Pictures.Insert ThisWorkbook.Path & "\ÕÕƬ\" & Range("e8") & ".jpg"
.Pictures(1).Height = Range("a1").MergeArea.Height
.Pictures(1).Width = Range("a1").MergeArea.Width
End With
Application.EnableEvents = True
End Sub
现在的效果是双击 表 sheet5 的 E6时,相片会对应着改变,开关是 表 sheet5 的 E6 我想要的效果是:C列最下面非空单元格完成操作后,打印的相片会跟着变。也就是说想要 开关 是 表 sheet1 的 C列最下面非空单元格。 还有那个相片的文件夹改了放其它地方就不行了,怎么样能做到C盘的备份文件夹里也能运行,怎么样才能做到啊?谢谢了!

“sheet1 的 C列最下面非空单元格” 是“C列第一个非空单元格”吧?
你这不写得挺好的嘛,就用这个吧。

Change 事件:当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件。

上面代码 的触发条件不是双击“E6",只要”更改工作表中的单元格“就会触发,但如果你点的不是E6,”If Target.Address <> "$E$6" Then Exit Sub“这句就会直接退出事件。所以你只要加一段代码判断“sheet1 的 C列最下面非空单元格”的位置,然后Target指向这个单元格就行。你也不是菜鸟了,没必要找人帮你写吧。追问

你好,谢谢你帮忙,那段代码不是我写的,我对VBA不大懂,我是菜鸟,
我改成这样 If Target.Address Sheet1.Range("c" & Rows.Count).End(3).Row Then Exit Sub
为什么运行不了啊?应该怎么改啊?
还有.Pictures.Insert ThisWorkbook.Path & "\照片\" & Range("e8") & ".jpg"这段代码,放在同一个文件夹里,就能运行,但是因为工作需要,要放在C:\备份\照片\ 这样的路径,应该怎么改呢?

追答

If Target Sheet1.Range("c" & Rows.Count).End(3) Then Exit Sub
If Target.address Sheet1.Range("c" & Rows.Count).End(3).address Then Exit Sub

.Pictures.Insert(C:\备份\照片\ " & Range("e8") & ".jpg")
ThisWorkbook.Path表示当前工作簿的完整路径,如果不是在当前文件夹就不要写了

你不是菜鸟吧?函数用得这么熟,我还得查呢

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网