1

我正在将电子表格从 Excel 2007 转换为 Mac Excel 2011。我已经尝试了几个小时来解决我的问题,但没有成功,所以任何帮助将不胜感激!

此 UDF 在某个范围内查找字符串,然后返回找到的单元格下一个单元格的值。SET 命令在 Mac 版本中不返回任何内容,但在 Excel 2007 中有效。

Function FindRng(Fnd As String)
Application.Volatile

Dim Rng As Range
If Fnd = "" Then
    FindRng = 0
    GoTo 109
End If
With Sheets("Matrix").Range("G2:FZ13")
         Set Rng = .Find(What:=Fnd, _
                After:=.Cells(2, 7), _
                LookIn:=xlValues, _
                LookAt:=xlWhole, _
                SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, _
                MatchCase:=False)
    If Not Rng Is Nothing Then
        FindRng = Sheets("Matrix").Cells(Rng.Row + 1, Rng.Column).Value
    Else
        FindRng = 0
    End If
End With

109 End Function
4

1 回答 1

6

Find 在 2011 年从单元格调用的 UDF 中不起作用(与 Office XP 之前的 PC 版本中存在的问题相同),因此您要么必须循环并测试每个单元格(将数据加载到数组中应该比逐个单元格读取)或使用 application.match 一次处理一行。

于 2013-06-03T13:01:17.783 回答