我正在尝试在工作簿的多个工作表中查找值列表,并在搜索值旁边的单元格中返回列标题和行标题。我发现一个代码,它完美适用于活动工作表中第一列数据 (ColB) 中的所有值。如果我将位于另一列或另一张工作表中的值添加到列表中,我会收到循环引用错误,并且它会在我的函数单元格中放置 0。我已将要查找的值列表放在最后一行数据下的第 1 列中,并将两个函数放在它们旁边的列中。
有人能帮我解决这个问题吗?
我的工作簿包含越来越多格式相同的工作表。每个工作表的第 1 行有列标题,第 1 列有行标题,81 行和 40 列中都填有数据。要查找的值列表最多可达 1000 个或更多。
Function MyROW(MyVAL)
With ActiveSheet.UsedRange
FFIND = False
For J = .Column + 1 To .Column + .Columns.Count
For I = .Row + 1 To .Row + .Rows.Count
If (Cells(I, J) = MyVAL) Then
FFIND = True
GoTo MyEND
End If
Next I
Next J
MyEND:
If (FFIND) Then MyROW = Cells(I, .Column)
End With
结束函数
Function MyCOLUMN(MyVAL)
With ActiveSheet.UsedRange
FFIND = False
For J = .Column + 1 To .Column + .Columns.Count
For I = .Row + 1 To .Row + .Rows.Count
If (Cells(I, J) = MyVAL) Then
FFIND = True
GoTo MyEND
End If
Next I
Next J
MyEND:
If (FFIND) Then MyCOLUMN = Cells(.Row, J)
End With
结束函数
在单元格 B84 中,我放置了以下函数:=MyCOLUMN(A84),并将其下拉到其下方的单元格。在单元格 C84 中,我对函数:=MyROW(A84) 执行了相同操作。如果我在 A84 中输入可以在 A2-A82 中找到的值,则这两个函数都可以正常工作,但如果我在 a84 中输入可以在 B2-AO82 中找到的值,则这两个函数都无法正常工作。