ExcelVBA--配列spilit、参加し、フィルタ機能を使用

アレイ上の記事の仲間の実際の例の後、周りのロジックを少し行う先の数は、歩道があり、私たちは知っておくべきことの多くは、我々はちょうどテレビなど、それを活用することで、私たちはテレビを理解する必要はありません回路装置の図であり、リモコンのみでは線をオンにします。
同じ高水準言語のプログラミングは、真のVBAとPythonで、高レベルの言語です綿密な研究は、基礎となるロジックやアルゴリズムのいくつかの深さを学ぶためにお金の多くの時間と労力がかかり、および「ユーザー」のほとんどが懸念されるためにも、私達はちょうどする必要がしたいですそれを行うことができることを知って、どのような機能、およびVBA関数とPythonパッケージはちょっと、私達は特に中途半端まともなユーザーの私の一種のように、ラインで使用、方法を考え、大きな牛・パッケージ「リモートコントロール」の一部です最初に習熟した後、マスターになるための方法を考えます。

(一次元アレイに作用する)スプリット機能は、
サブストリングの指定された数が含まれてゼロベースでの一次元アレイを返します。
スプリット(文字列、「区切り」)

Sub test()
Dim i$
i = "a-b-c-d-e-f"
arr = Split(i, "-")
[a1].Resize(1, UBound(arr)) = arr
End Sub

結果:


1920664-1c0597bce11fe768.png
image.png

データ交換:

Sub 数据互换()
arr = [a1].CurrentRegion
For Each a In arr
    arr1 = Split(a, "-")
    n = n + 1
    Cells(n, "c") = arr1(1) & "-" & arr1(0)
Next
End Sub

結果:


1920664-d3ad0988cf5b5f86.png
image.png

spilitを逆に(1次元配列に作用する)機能に参加。
これは、作成された配列内のサブストリングを複数接続することによって得られる文字列を返します。
参加(アレイ、「コネクタ」)


1920664-88dd0f9b38c64962.png
image.png
Sub 数据合并()
i = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
With Sheet3
For j = 1 To i
   Set k = Range(.Cells(j, 1), .Cells(j, Columns.Count).End(xlToLeft))
   arr = Application.Transpose(Application.Transpose(k))
   Cells(j, 1) = "'" & Join(arr, "")
Next j
End With
End Sub
1920664-cac5be5298bfa990.png
image.png

spilit機能に参加するためには、唯一の一次元配列を扱うことができるので、彼らは移調トランスポーズの間の変換を通過する必要があります。

フィルタ関数(一次元アレイに作用する)は、
ゼロベースのインデックスの配列を返し、指定されたフィルタリング基準に基づいて、文字列配列のサブセットを「含む」アレイ。
構文
「フィルタ、含まれている真である(1次元配列は、検索文字列は、[TRUE / FALSE]。検索する)が含まれていない偽です。

Sub test()
arr = [{"abc","bb","c","ba","dd","nba"}]
a = Filter(arr, "b", True)
b = Filter(arr, "b", 0)
End Sub

戦闘フィルタ:ぼかしフィルター。

1920664-302f020928da86b4.png
image.png
Sub 筛选()
[d2:f999].Clear
i = Cells(Rows.Count, 1).End(xlUp).Row
Range("c2:c" & i).FormulaArray = "=a2:a" & i & " & ""-"" & b2:b" & i
arr = Range("c2:c" & i)
Range("c2:c1" & i).Clear
a = Filter(Application.Transpose(arr), [g1], True)
For Each b In a
    n = n + 1
    c = Split(b, "-")
    Cells(n + 1, "d") = c(0)
    Cells(n + 1, "e") = c(1)
Next
End Sub

結果:我々は2つのセルをマージするデータを結合を使用していない、代わりに配列関数ワークシート関数を使用するのでは、エリアA2:B11使い捨ては、列Cにマージされ、それ以来、データアレイ、空の列データCにロードARRは、それは次に整合フィルタ関数に転置され、二次元配列された結果を割り当て、最後のサイクルの対応するセルへのその分割spilit機能付きの一次元アレイです。


1920664-8fe45ab94bacfcef.png
image.png

ます。https://www.jianshu.com/p/d0ff9157f540で再現

おすすめ

転載: blog.csdn.net/weixin_34245082/article/details/91163439