Excel 宏将多个单元格上的vlookups与图像单击关联

Excel 宏将多个单元格上的vlookups与图像单击关联,excel,vba,Excel,Vba,我正在尝试开发一个宏,在点击一张图片后,将在给定行中的一组单元格上进行v查找 例如: 如果我点击第10行的一个单元格,然后点击一只贵宾犬的图片(位于表格中的某个位置,而不是第10行),那么第10行将在一个单元格中填充“动物”,在下一个单元格中填充“狗”,在下一个单元格中填充“贵宾犬” 然后我点击第11行的一个单元格,然后我点击一个棕榈树的图片(位于表格的某个地方),第11行将在一个单元格、下一个单元格“树”和下一个单元格“棕榈树”中填充“植物” 有什么想法吗? 谢谢 在工作表上放置一些图像,

我正在尝试开发一个宏,在点击一张图片后,将在给定行中的一组单元格上进行v查找

例如:

  • 如果我点击第10行的一个单元格,然后点击一只贵宾犬的图片(位于表格中的某个位置,而不是第10行),那么第10行将在一个单元格中填充“动物”,在下一个单元格中填充“狗”,在下一个单元格中填充“贵宾犬”

  • 然后我点击第11行的一个单元格,然后我点击一个棕榈树的图片(位于表格的某个地方),第11行将在一个单元格、下一个单元格“树”和下一个单元格“棕榈树”中填充“植物”

有什么想法吗?
谢谢

在工作表上放置一些图像,在每个图像的单击事件中,使用图像中包含的项目名称调用LookupSelection子项:

Private Sub imgPalm_Click()
    LookupSelection ("Palm Tree")
End Sub

Private Sub LookupSelection(name As String)
    Dim lookupRange As Range
    Set lookupRange = Sheet1.Range("I3:K5") 'Range for vlookup
    Dim selectedRow As Integer
    selectedRow = Selection.Row
    Dim type1, type2 As String '

    type1 = Application.WorksheetFunction.VLookup(name, lookupRange, 2)
    type2 = Application.WorksheetFunction.VLookup(name, lookupRange, 3)

    Sheet1.Cells(selectedRow, 1) = name
    Sheet1.Cells(selectedRow, 2) = type1
    Sheet1.Cells(selectedRow, 3) = type2
End Sub
你需要一个查找表(我用的是I3:K5)。成品应如下所示:


祝你好运

在工作表上放置一些图像,在每个图像的单击事件中,使用图像中包含的项目名称调用LookupSelection子项:

Private Sub imgPalm_Click()
    LookupSelection ("Palm Tree")
End Sub

Private Sub LookupSelection(name As String)
    Dim lookupRange As Range
    Set lookupRange = Sheet1.Range("I3:K5") 'Range for vlookup
    Dim selectedRow As Integer
    selectedRow = Selection.Row
    Dim type1, type2 As String '

    type1 = Application.WorksheetFunction.VLookup(name, lookupRange, 2)
    type2 = Application.WorksheetFunction.VLookup(name, lookupRange, 3)

    Sheet1.Cells(selectedRow, 1) = name
    Sheet1.Cells(selectedRow, 2) = type1
    Sheet1.Cells(selectedRow, 3) = type2
End Sub
你需要一个查找表(我用的是I3:K5)。成品应如下所示:


祝你好运

在常规模块中创建一个宏来处理图像单击,并使用右键单击>>分配宏(或在代码中)将其分配给所有图像的“onaction”属性


正如Chris所建议的,使用查找表来填充所选行中的值:在这种情况下,它基于工作表上图像的名称。

在常规模块中创建一个宏来处理图像单击,并使用右键单击>>分配宏(或在代码中)将其分配给所有图像的“onaction”属性


正如Chris所建议的,使用查找表填充所选行中的值:在这种情况下,尽管它基于工作表上图像的名称。

Ahh“Application.Caller”,很好。这太棒了!我已经准备好了。为了增加灵活性,我使用了一个namerange来代替A2:D20Ahh“Application.Caller”,很好。这太棒了!我已经准备好了。为了增加灵活性,我用namerange代替A2:D20我一定误解了你的问题,因为我在想图像识别,AI和博士论文。图像识别将由点击图像的人完成。我一定误解了你的问题,因为我在想图像识别,AI,和博士论文。图像识别将由点击图像的人完成。