我正在尝试编写一个VBA代码,允许我单击一个单元格并显示图像。
有人已使用此代码video from youtube完成了该操作:
Private Sub Image1_Click()
Image1.Visible = False
Range("F1").ClearContents
Range("A1").Select
Image1.Picture = LoadPicture("")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static OldCell As Range
If Target.Address = "$A$1" Then
Image1_Click
Exit Sub
ElseIf Target.Address = "$A$" & ActiveCell.Row Then
Range("F1").Value = ActiveCell.Value
Image1.Visible = True
Image1.Top = ActiveCell.Top
Image1.Left = ActiveCell.Offset(0, 5).Left
End If
On Local Error Resume Next
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\" & Range("F1").Value & ".jpg")
If Err Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\Yok.jpg")
If Not OldCell Is Nothing Then
OldCell.Interior.ColorIndex = xlColorIndexNone
End If
If Target.Address = "$A$" & ActiveCell.Row Then
Target.Interior.ColorIndex = 6
Set OldCell = Target
End If
End Sub
此外,还有另一小段代码"此工作簿"
Private Sub Workbook_Open()
Sheets("Data").Range("A1").Select
Sheets("Data").Image1.Visible = False
End Sub
我一直在尝试将此代码调整到我的工作表中,但我无法做到。我在A栏上有一个练习清单,当我点击每个练习时,我希望相关的图片出现在第一列。这个练习列表位于一张名为Analysis的表格上。我的照片位于桌面上名为Exercises的文件夹中。图片在" .PNG"。我不知道这些信息是否相关,但每个练习(列A上的列表)都包含Vlookup函数。
从上面的代码中可以看到图片与所选单元格一致,您可以通过删除以下代码来消除此问题:
Image1.Visible = True
Image1.Top = ActiveCell.Top
Image1.Left = ActiveCell.Offset(0, 5).Left
老实说,如果这段代码可以适应我的情况,我会很高兴,无论如何我更希望图片出现在选定的范围内" I3"。
请不要犹豫与我联系以获取更多信息。 谢谢
这是我的代码改编
Private Sub Image1_Click()
Image1.Visible = False
Range("I1").ClearContents
Range("A3").Select
Image1.Picture = LoadPicture("")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static OldCell As Range
If Target.Address = "$A$3" Then
Image1_Click
Exit Sub
ElseIf Target.Address = "$A$" & ActiveCell.Row Then
Range("I1").Value = ActiveCell.Value
Image1.Visible = True
Image1.Top = ActiveCell.Top
Image1.Left = ActiveCell.Offset(0, 5).Left
End If
On Local Error Resume Next
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Exercises\" & Range("I1").Value & ".PNG")
If Err Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Exercises\Yok.PNG")
If Not OldCell Is Nothing Then
OldCell.Interior.ColorIndex = xlColorIndexNone
End If
If Target.Address = "$A$" & ActiveCell.Row Then
Target.Interior.ColorIndex = 6
Set OldCell = Target
End If
End Sub
小家伙
Private Sub Workbook_Open()
Sheets("Analysis").Range("A3").Select
Sheets("Analysis").Image1.Visible = False
End Sub
当我运行代码时,我得到了错误"对象需要"并突出显示代码行Image1.Visible = True
。