XL2000: Benutzerdefinierte Funktion nicht angrenzende Zellen in einem Array aktivieren

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 213403 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

In Microsoft Visual Basic für Applikationen können Sie eine benutzerdefinierte Funktion erstellen, die eine Nichtangrenzende Markierung von Zellen in einem Array umgeblättert werden. Dies ist hilfreich bei viele der integrierten Microsoft Excel-Funktionen, die einem einzelnen Bereich oder ein Array als Eingabe erfordern, wenn die Daten im Arbeitsblatt nicht in einen zusammenhängenden Bereich enthalten ist.

Weitere Informationen

Microsoft bietet Programmierbeispiele für Abbildung nur ohne Gewährleistung oder konkludent, einschließlich, aber nicht beschränkt auf konkludenten Garantien der Handelsüblichkeit und/oder Eignung für einen bestimmten Zweck. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Spezialisten von Microsoft Support Services können bei Erläuterung die Funktionalität einer bestimmten Prozedur helfen, Sie werden ändert jedoch nicht Beispielen bieten Funktionen hinzugefügt oder Verfahren, um Ihren speziellen Anforderungen erstellen.
Wenn Sie Programmiererfahrung, beschränkt haben, sollten Sie ein Microsoft Certified Partner oder die Microsoft Advisory Services wenden. Weitere Informationen finden Sie auf diese Websites von Microsoft:

Microsoft Certified Partner - https://partner.microsoft.com/global/30000104

Microsoft-Sicherheitsempfehlung Services - http://support.microsoft.com/gp/advisoryservice

Weitere Informationen zu den Supportoptionen, die verfügbar sind und wie Sie Microsoft kontaktieren besuchen Sie in der folgenden Website: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Visual Basic-Beispielprozedur

Diese Funktion MakeArray kann alle zusammenhängenden Zellbereich als Argumente verwenden. Nicht angrenzende Bereiche sind durch Kommas getrennt.
Function MakeArray(ParamArray CellAddress()) As Variant
   ' Declaration of function variables.
   Dim Temp As Variant
   Dim TheArray() As Variant
   Dim Count As Integer, Ver as Integer
   Dim W As Integer, X As Integer, Y As Integer, Z As Integer

   ' Initialize the Count variable.
   Count = 1
   ' Set the variable Ver = 0 if the version of Microsoft Excel is
   ' greater than 8 (8 is Microsoft Excel 97 for Windows).
   If Left(Application.Version, Len(Application.Version) - 1) >= 8 Then
      Ver = 0
   Else
      Ver = 1
   End If
   ' Set variable X from Ver to the total number of arguments in
   ' the CellAddress array.
   For X = Ver To UBound(CellAddress, 1)
      ' Temp equals the first element of the CellAddress array.
      Set Temp = CellAddress(X)

      ' Test Temp to see whether it is an array.
      If IsArray(Temp) Then

         ' If Temp is an array, set Y from 1 to the total number
         ' arguments in the Temp array's first dimension.
         For Y = 1 To UBound(Temp.Value, 1)
             ' If Temp is an array, set Z from 1 to the total number
            ' arguments in the Temp array's second dimension.
            For Z = 1 To UBound(Temp.Value, 2)

               ' ReDimension TheArray, Preserving any existing
               ' values, from 1 to Count.
               ReDim Preserve TheArray(1 To Count)

               ' TheArray, element Count equals Temp, element Y in the
               ' first dimension by element Z in the second dimension.
               TheArray(Count) = Temp(Y, Z).Value
                ' Increment the Count variable by one.
               Count = Count + 1
            Next Z

         Next Y
      ' If Temp is not an array, proceed from here.
      Else
         ' ReDimension TheArray, preserving any existing
         ' values, from 1 to Count.
         ReDim Preserve TheArray(1 To Count)
          ' TheArray element Count equals Temp.
         TheArray(Count) = Temp

         ' Increment the Count variable by one.
         Count = Count + 1
      ' End the block If statement.
      End If
   Next X
   ' Return TheArray to our function MakeArray.
   MakeArray = TheArray

End Function
				

Verwenden die Beispiel-Prozedur

  1. Starten Sie eine neue Excel-Arbeitsmappe und geben Sie die folgenden Informationen in einem Arbeitsblatt:
          A1: 1   B1: 2     D1: 5
          A2: 3   B2: 4     D2: 6
    					
  2. Drücken Sie [Alt]+[F11], um den Visual Basic-Editor zu starten
  3. Klicken Sie im Menü Einfügen auf Modul .
  4. Geben Sie den Visual Basic MakeArray Funktion Beispielcode auf, die (siehe oben) in das Modul.
  5. Zurück zu dem Arbeitsblatt (drücken Sie ALT + F11)
  6. Wählen Sie Zellen A4:F4 auf das Arbeitsblatt, geben Sie die folgende Formel in der Formel -Leiste
    =MakeArray(A1:B2,D1:D2)
    und drücken Sie STRG + UMSCHALT + Eingabe, um die Formel als Matrixformel einzugeben.
Das Ergebnis wird im folgende Beispiel aussehen:
   A4:1   B4:2   C4:3   D4:4   E4:5   F4:6
 
				

Informationsquellen

Weitere Informationen zur Verwendung des Beispielcodes aus diesem Artikel finden Sie in folgendem Artikel der Microsoft Knowledge Base:
212536OFF2000: Wie zum Ausführen von Beispielcode aus Knowledge Base-Artikel

Eigenschaften

Artikel-ID: 213403 - Geändert am: Sonntag, 9. Februar 2014 - Version: 3.5
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Excel 2000 Standard Edition
Keywords: 
kbnosurvey kbarchive kbmt kbdtacode kbhowto kbprogramming KB213403 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 213403
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com