PLZ: 5 andere mit kleinster Entfernung
#11
Hallo snb,

ja, dieser Code funktioniert.

Die Laufzeit ist allerdings größer als in der Version mit Worksheet-Function. Die vermutliche Begründung ist, dass Excel alle Kerne nutzt, aber vorallem, dass die M$ - Programmierer mit C++ in einer xll (dll für Excel) sehr hardwarenah arbeiten.

mfg
Antworten Top
#12
Mirscheint die VBA.DLL das noch etwas genauer zu tun.

Könntest du mal testen ?

Code:
Sub M_snb()
  sn = Cells(1).CurrentRegion
 
  j = [match(10245,A1:A8901)]
  sq = Cells(1).CurrentRegion.Columns(j)
 
  For jj = 2 To 10
      y = Application.Small(sq, jj)
      For jjj = 1 To UBound(sn, 2)
        If sn(j, jjj) = y Then Exit For
      Next
      Debug.Print "row: " & j & vbTab & "value: " & y & vbTab & "column: " & jjj & vbTab & "columnhead: " & sn(1, jjj)
  Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#13
Hallo snb,

der Code läuft. Die meiste Zeit wird aber für die Übertragung der Zellen in das Array benötugt. Danach ist die Berechnung extrem schnell.

Code:
nach sn        8,039063

Ende           8,054688

mfg

Matrix 8.900 x 8.900
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste