我的文档由生产部分组成,我的很多数据来自公司的数据仓库查询。
问题:
更新查询/文档时,所有具有VLOOKUPNTH
公式的单元格都会显示值"#value"
,直到我手动单击公式栏并按Enter。然后,它完美。
问题是更新程序后,我必须手动按此功能的每个单元格,然后按功能栏中的Enter键(大约15x3个单元格)。
我的代码:
Function VLOOKUPNTH(Lookup_value, table_array As Range, _
Col_index_num As Integer, Nth_value)
' Extension to VLOOKUP function. Allows for finding
' the " nth " item that matches the lookup value.
Dim nRow As Long
Dim nVal As Integer
Dim bFound As Boolean
VLOOKUPNTH = ""
With table_array
For nRow = 1 To .Rows.Count
If .Cells(nRow, 1).Value = Lookup_value Then
nVal = nVal + 1
End If
If nVal = Nth_value Then
VLOOKUPNTH = .Cells(nRow, Col_index_num).Text
Exit Function
End If
Next nRow
End With
End Function
图片:
有什么聪明的方法可以避免此问题?我可以用VBA代码以某种方式激活此功能吗? OBS!在上图中唯一最更改的列上,我的错。 OBS!
谢谢
答案 0 :(得分:0)
在使用此功能的一个或多个工作表上,可以添加事件。为此,请右键单击工作表名称(例如,Sheet1),然后从弹出菜单中选择“查看代码”。
在代码窗口的左侧下拉框中,选择“工作表”。然后在右下拉菜单中选择“更改”事件。使用工作表计算方法,即可使用Ctrl / Alt / F9键-但仅适用于工作表。如果要计算整个工作簿,请使用Application.Calculate方法。
对工作表进行任何更改,并计算工作表上的所有功能。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveWorkbook.Sheets("Sheet1")
ws.Calculate
End Sub