2016-03-28 4 views
-1

Schreiben Sie eine Funktion, die 2 Bereiche oder 2 Arrays als Eingabe benötigt und die Summe der absoluten Differenz jedes Elements erhält, wenn diese beiden Bereiche/Arrays die gleiche Anzahl von Elementen haben oder eine Fehlermeldung senden Benutzer, wenn die Größen dieser beiden Arrays/Bereiche nicht identisch sind. Das ist ein VBA-Problem und ich habe eine harte Zeit. DieseVBA (Summe der absoluten Differenz) Bereiche

ist das, was ich bisher:

Public Function MyFunction(Rng1 As Range, Rng2 As Range) 
    Dim CountRng1 As Long 
    Dim CountRng2 As Long 

    Rng1.Count = CountRng1 
    Rng2.Count = CountRng2 

    If CountRng1 = CountRng2 Then 

    Else 
     MsgBox "Error, the ranges you passed to the function are not the same size" 
    End If 
End Function 
+0

gut aussieht, ist es immer noch in Arbeit, aber was ist Ihre Frage? – Rosetta

+0

Müssen die Eingabebereiche die gleiche Form (Anzahl der Zeilen) oder nur die gleiche Größe haben? –

Antwort

0

Funktion zeigen keine Popup-Meldung. So geringfügige Änderungen in Ihrem Code vorgenommen, um Ihre erwartete Aufgabe zu tun.

Public Function MyFunction(Rng1 As Range, Rng2 As Range) 
    Dim CountRng1 As Long 
    Dim CountRng2 As Long 

    CountRng1 = Rng1.Count 
    CountRng2 = Rng2.Count 

    If CountRng1 = CountRng2 Then 
     'Your Code Goes here... 
    Else 
     MyFunction = "Error, the ranges you passed to the function are not the same size" 
    End If 
End Function 
0

Sie können es mit einer einfachen Formel in einer Zelle tun:

=SUMPRODUCT(ABS(A1:A10-B1:B10)) 
Verwandte Themen