2016-07-14 15 views
0

配列やコンビネーションに連続しない値を読み込むコードを記述しました。配列は、配列の値を昏睡状態(つまり、mystring = Join(Pie、 "、")で区切られた文字列変数に書き込むことによって書き出します。それらの間には何もありません。コンビネーションは、コンビネーションの内容を1つのセルに書き出す方法がわからないためにうまくいきます。つまりコンビネーションはフルーツのリストです。私はユニークな価値のコードが働いているが、Apple、Orange、Grape、、Peachのような出力に終わるかもしれない。私がCombinationを使うとき、値は正しく読み込まれるが、 (Apple、Orange、Grape、Peach)で区切られたユニークな値だけを書いてみたいと思っています。もし助けが必要なら、サンプルコードを提供することができます。 Excel VBAで(可能であれば、アルファベット順で組み合わせ内の項目を並べ替えることもあります)ありがとう事前に。VBAでコンビネーションを組み合わせて書き出す

+1

あなたはあなたのコードが含まれており、現在のコードは、あなたがそれを与えることを望むものを与えないところの具体的な例を与えることができます。 –

+0

可能な複写http://stackoverflow.com/questions/7198154/combination-algorithm-in-excel-vba –

+0

私は範囲に配列を分割し、セル<> ""の場合は、配列に再結合します。 http://www.globaliconnect.com/excel/index.php?option=com_content&view=article&id=270:excel-vba-string-functions-split-join-concatenate&catid=79&Itemid=475 – Lowpar

答えて

0

何について:

Dim result As String 
Dim fruit As Variant 

fruit = Array("Banana", "Apple", "Banana", "Orange", "", "Apple") 

For i = 0 To UBound(fruit) 

    If fruit(i) <> "" And InStr(result, fruit(i)) = 0 Then 
     If result <> "" Then 
      result = result + ", " + fruit(i) 
     Else 
      result = fruit(i) 
     End If 
    End If 
Next i 

MsgBox result 'returns: "Banana, Apple, Orange" 

編集:果物をシート上に格納されている場合は、単にループは、細胞トラフ、配列に追加します。

編集2.0:

Dim result As String 
Dim fruit As Variant, allfruits As Variant 
Dim i As Integer 
Dim success As Boolean 

allfruits = Array("Apple", "Orange", "Mango", "Banana") 'Fruits sorted by Importance 
fruit = Array("Banana", "Apple", "Banana", "Orange", "", "Apple") 

For i = 0 To UBound(allfruits) 
    success = False 
    For Each element In fruit 
     If element = allfruits(i) And success = False Then 
      success = True 
     End If 
    Next element 
    If success = True Then 
     If result = "" Then 
      result = allfruits(i) 
     Else 
      result = result + ", " + allfruits(i) 
     End If 
    End If 
Next i 

MsgBox result 'returns: "Apple, Orange, Banana" 
+0

これはうまく機能しました。最後に、1から10の値のルックアップテーブルを参照して、配列のアイテムを1から10の順に並べ替えたいと思います。私。 Apple = 5、Banana = 2、grapes = 9の場合、配列は「Banana、Apple、Grape」と並び替えられます。このルックアップテーブルは別のシートにありますが、VBAで静的な値をハードコードする必要がある場合は可能です。ありがとう。 –

+0

1.ルックアップテーブルがどのように表示されるかの写真を投稿できますか?次に、フルーツを値でソートする必要がありますか(最小のファースト、...、最大の最後の値)。 –

+0

アクセスできません。別のシートには、別のシートのテーブルに基づいて特定の順序でアレイにリストされたい特定の順序で10個の果物のリストがあります。すなわち、行1の列B = 1および行1の列C =アップル、次に2と梨、次に3と橙色などの下の1行...この表は果物が配列内に列挙される順序を決定する。言い換えれば、アレイが構築されている最中にPearが登場すると、それが配列に追加され、AppleがPearの後に登場すれば、配列のPearの前になります。これがその説明に役立つことを願っています。ご協力いただきありがとうございます。 –

関連する問題