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盘的备份文件夹里也能运行,怎么样才能做到啊?谢谢了!
你这不写得挺好的嘛,就用这个吧。
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表示当前工作簿的完整路径,如果不是在当前文件夹就不要写了
你不是菜鸟吧?函数用得这么熟,我还得查呢