macros将多个单元格上的vlookups与图像点击关联起来

我试图开发一个macros,点击一张图片后,将对给定行中的一堆单元格进行v-lookups。

例如:

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

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

有任何想法吗? 谢谢!

在常规模块中创buildmacros来处理图像点击,并使用右键单击>>分配macros (或在代码中)将其分配给所有图像的“无作用”属性。

Sub ImageClick() Dim rngLookup As Range Dim ImgName As String ImgName = Application.Caller Set rngLookup = ThisWorkbook.Sheets("Lookup").Range("A2:D20") With Selection.Cells(1).EntireRow .Cells(1).Value = ImgName .Cells(2).Value = Application.VLookup(ImgName, rngLookup, 2, False) .Cells(3).Value = Application.VLookup(ImgName, rngLookup, 3, False) .Cells(4).Value = Application.VLookup(ImgName, rngLookup, 4, False) End With End Sub 

正如Chris所build议的那样,使用查找表来填充所选行中的值:在这种情况下,尽pipe它基于表单上图像的名称。

将一些图像放在您的工作表和Click事件中,使用图像中包含的项目的名称调用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)。 完成的东西应该是这样的:

Poodlelol

祝你好运!