User Tools

Site Tools


vba:functions:inset

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
vba:functions:inset [03.07.2014 14:56:05]
yaslaw created
vba:functions:inset [29.04.2015 11:03:29] (current)
yaslaw
Line 1: Line 1:
 +<​const>​
 +    version=1.3.0
 +    vdate=11.09.2014
 +    fname=udf_inset.bas
 +    ns=%NAMESPACE%
 +    fpath=/​vba/​functions
 +</​const>​
 +{{keywords>​vba,​dictionary,​cast,​create dictionary,​function}}
 +{{description>​Diese Funktion erstellt auf verschiedene Arten ein Dictionary. V-%%version%%}}
 +
 ====== [VBA] inSet() ====== ====== [VBA] inSet() ======
-Diese Funktion dient als IN(),wie man sie in vielen anderen Sprachen kennt. Sie kann aber auch ein in_array() abdecken. +//Diese Funktion dient als IN(),wie man sie in vielen anderen Sprachen kennt. Sie kann aber auch ein in_array() abdecken. 
- +// 
-{{:​vba:​functions:​udf_inset.bas|download udf_inset.bas}}+==Version %%version%% %%vdate%%== 
 +{{%%fname%%|Download %%fname%% (V-%%version%%)}}
  
 ===== Definition ===== ===== Definition =====
-<​code>​found = inSet(search,​ value1 [,value2... [,​value#​]])</​code>​+<​code>​found = inSet(search,​ value1 [,value2... [,value#]]
 +found = inSet(search,​ valueList)</​code>​
 <code vb>​Public Function inSet(ByRef iSearch As Variant, ParamArray iItems() As Variant) As Boolean</​code>​ <code vb>​Public Function inSet(ByRef iSearch As Variant, ParamArray iItems() As Variant) As Boolean</​code>​
  
 ==== Parameters ==== ==== Parameters ====
   ***iSearch** Wert der gesucht wird   ***iSearch** Wert der gesucht wird
-  ***ParamArray iItems*** Werte gegen die geprüft wird. Sind die Werte Arrays, werden die Arrays durchsucht+  ***%%ParamArray iItems%%*** Werte gegen die geprüft wird. Sind die Werte Arrays, werden die Arrays durchsucht
  
 ==== Rückgabewert ==== ==== Rückgabewert ====
Line 19: Line 31:
 debug.print inset(2, array(1, 2, 3))  ' true debug.print inset(2, array(1, 2, 3))  ' true
 debug.print inset(2, array(1, 2), 3)  ' true debug.print inset(2, array(1, 2), 3)  ' true
-debug.print inset(3, array(1, 2), 3)  ' true</​code>​+debug.print inset(3, array(1, 2), 3)  ​' true 
 +debug.print inset("​d",​ "​a,​b,​c,​d,​e"​) ​  ' true</​code>​
  
 ===== Code ===== ===== Code =====
-<code vb udf_inset.bas>​Attribute VB_Name = "​udf_inSet"​ +<source ​'%%fpath%%/%%fname%%' ​vb>
-'------------------------------------------------------------------------------- +
-'​File ​        : udf_inSet.bas +
-' ​              ​Copyright mpl by ERB software +
-' ​              All rights reserved +
-' ​              http://​wiki.yaslaw.info/​dokuwiki/​doku.php/​vba/​cast/​strtodate +
-'Environment ​ : VBA 2007 + +
-'​Version ​     : 1.1.0 +
-'​Name ​        : inSet +
-'​Author ​      : Stefan Erb (ERS) +
-'​History ​     : 30.04.2014 - ERS - Creation +
-' ​              ​27.06.2014 - ERS - Die màgliche hinzugefügt,​ Arrays zu übergeben +
-'​------------------------------------------------------------------------------- +
-Option Explicit +
- +
-'/** +
-' * Prüft ein Wert gegen eine Liste von Werten. +
-' * Dient als Ersatz des Befehls IN(), den man in vielen anderen Sprachen kennt +
-' * Bei Objekten geht es nur auf dieselbe Instanz. +
-' * +
-' *     ​inSet(search,​ value1 [,value2 ... [,​value#​]]) +
-' * +
-' * @param ​ Variant ​    Wert der gesucht wird +
-' * @paramArray ​        Werte gegen die geprüft wird. Sind die Werte Arrays, werden die Arrays durchsucht +
-' * @return Boolean ​    Flag ob der Wert gefunden wird +
-Public Function inSet(ByRef iSearch As Variant, ParamArray iItems() As Variant) As Boolean +
-    inSet = inSetArray(iSearch,​ CVar(iItems)) +
-End Function +
- +
-' * @param ​ Variant ​    Wert der gesucht wird +
-' * @param ​ Array       Werte gegen die geprüft wird. Sind die Werte Arrays, werden die Arrays durchsucht +
-' * @return Boolean ​    Flag ob der Wert gefunden wird +
-Private Function inSetArray(ByRef iSearch As Variant, ByRef iItems As Variant) As Boolean +
-    Dim item As Variant: For Each item In iItems +
-        'Null Vergleich +
-        If IsNull(iSearch) Or IsNull(item) Then +
-            inSetArray = IsNull(iSearch) = IsNull(item) +
-        ElseIf IsArray(item) Then +
-            inSetArray = inSetArray(iSearch,​ item) +
-        '​Objekt-Vergleich +
-        ElseIf IsObject(iSearch) And IsObject(item) Then +
-            inSetArray = (iSearch Is item) +
-        '​Value-Vergleich +
-        ElseIf Not IsObject(iSearch) And Not IsObject(item) Then +
-            inSetArray = (Nz(iSearch) = Nz(item)) +
-        End If +
-        If inSetArray Then Exit Function +
-    Next item +
-End Function</​code>+
vba/functions/inset.1404392165.txt.gz · Last modified: 03.07.2014 14:56:05 by yaslaw