Excel の組み込みフィルターやピボット テーブル関数を使用せずに、vba を使用していくつかの結果を抽出したいと考えています。次の例を考えてみましょう: 列 A と B のデータが与えられた場合、C1 に "a" を入力し、vba を使用して列 B から対応するすべての値 (1,3,5) を列 D に取得できるようにしたいと考えています。「b」と入力すると、2、6 などになります。ありがとう。
18370 次
3 に答える
2
Sub GenerateMatches()
With ActiveSheet
FinalRowA = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
InputLetter = ActiveSheet.Cells(1, 3)
NextRow = 1
For i = 1 To FinalRowA
If .Cells(i, 1) = InputLetter Then
.Cells(NextRow, 4) = .Cells(i, 2)
NextRow = NextRow + 1
End If
Next i
End With
End Sub
明らかに、これをより動的で高速にすることができますが、これで仕事が完了するはずです。
于 2013-09-13T23:36:48.657 に答える
0
フィルターやピボットを使いたくないというあなたの気持ちは理解できます。しかし、フォーミュラ?
数式で何かが可能である場合、なぜ VBA を使用するのでしょうか?
この配列数式を貼り付け、+ +をCell D1
押して下に引きます。CTRLSHIFTENTER
=IF(ISERROR(INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$C$1,ROW($A$1:$A$7)),ROW(1:1)),2)),"",INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$C$1,ROW($A$1:$A$7)),ROW(1:1)),2))
スクリーンショット
于 2013-09-14T05:18:46.000 に答える