2017-07-02 4 views
2

これは私の関数である:私の機能はWindowsでは動作しますが、OS Xでは動作しないのはなぜですか?

Function FindLast(searchTerm As String) As Integer 

    Set cell = Worksheets("nameofsheet").Columns("A").Find(what:=searchTerm, searchorder:=xlByColumns, searchdirection:=xlPrevious) 

    If cell Is Nothing Then 
     Debug.Print ("Text was not found") 
     FindLast = 0 
    Else 
     Debug.Print ("found") 
     FindLast = cell.row 
    End If 

End Function 

これは、Windows上でうまく動作しますが、まだMac上でそれはしていません。私はいつもセルに#REF!エラーを取得します。

+0

どのプラットフォームのExcelを各プラットフォームで使用していますか? – brandonscript

+0

@brandonscriptはExcelの両方で – StB

+0

の2016を凌駕します。それはExcel 2011で動作します。UDFとして使用しているのですか? –

答えて

3

このようなルックスで私の機能を使用して式イム:= SUM(INDIRECT( " 'シート名' C!" & MATCH($ C22; 'シート名' $のA:$ A; 0)& " :C "& FindLast($ C22))) - StB 11 minutess ago

エラーはコードのためではありません。 Excel Mac UDFでのINDIRECT()

.Findのためです。上記のコメントのいずれかで述べたように、エラーメッセージは表示されません。それはあなたに0を与えるでしょう。これを確認する別のstackoverflow postがあります。

これを機能させるには、以下のようにループを使用する必要があります。

Function FindLast(searchTerm As String) As Integer 
    Dim oSht As Worksheet 
    Dim lastRow As Long, i As Long 

    On Error GoTo WHOA 

    Set oSht = Sheets("nameofsheet") 

    lastRow = oSht.Range("A" & oSht.Rows.Count).End(xlUp).Row 

    For i = 1 To lastRow 
     If oSht.Range("A" & i).Value = searchTerm Then 
      MsgBox "Value Found in Cell " & oSht.Range("A" & i).Address 
      FindLast = i 
      Exit Function 
     End If 
    Next i 
    Exit Function 
WHOA: 
    MsgBox Err.Description 
End Function 
+1

ありがとう! :) – StB

関連する問題