我正在使用Excel 2007,需要一些关于如何编写Splat用户定义函数函数的帮助/指导。 Splat函数使您能够将数据输入到包含vlookup函数的单元格中,然后使用您输入的值更新查找表,但vlookup公式仍保留在单元格中。我在下面提供了一个例子:
第1步。您有一个查找表和一组使用vlookup函数显示表数据的单元格。
第2步。在单元格d3中,用户输入: / 500 。 /触发Splat函数,该函数使用Jane(500)的新值更新查找表,并替换单元格d3中的查找公式。
第3步。在Splat函数触发后,Jane在表中有一个500值,单元格d3(通过查找函数)显示更新的值。
理想情况下,Splat函数中会内置一些数据验证,该函数只会使用/ slash触发器触发,否则会通过数据验证弹出窗口。
对于如何处理此问题,示例代码,文章等的任何想法将不胜感激。
感谢。
答案 0 :(得分:2)
使用Worksheet_Change
事件尝试这样的事情:
Sub Worksheet_Change(ByVal Target As Range)
'Assume the workbook has a named range 'lookuptable' at G3:H6
'Assume the workbook has a named range 'lookupColumn' at D3:D6
If Target.Cells.Count <> 1 Then Exit Sub
If Intersect(Target, Range("lookupColumn")) Is Nothing Then Exit Sub
If Not Left(Target, 1) = "/" Then Exit Sub
UpdateLookupTable Target
End Sub
Sub UpdateLookupTable(cl As Range)
Dim r As Long
Dim c As Long
Dim splatVal As String
splatVal = Replace(cl.Value, "/", 0, , 1)
r = Application.Match(cl.Offset(0, -1), Range("lookuptable").Columns(1), False)
Range("lookuptable").Cells(r, 2).Value = splatVal
cl.Value = splatVal
End Sub
我不确定您是否打算保留D列中的VLOOKUP
公式。此示例没有,但如果您想要保留这些功能,则可以修改它。