2016-09-25 5 views
-4

VBAコードを使用して作成したExcelシートに同じ名前の複数の行を表示するとします。私はExcelシート1にテキストボックスを作成しました。テキストボックスに名前を入力して検索ボタンをクリックすると、同じ人物の複数の行をExcelシート3で表示します。Excelで複数の行を表示するVBAコード

コード: 私は持っています「リスト」というExcelシートが作成され、その中のデータは

NAME  CITY 

LAKHA LONDON 
KIKI US 
LAKHA US 

ここにコードがあります。

Sub finddata() 

Dim erow As Long 
Dim ws As Worksheet 
Dim lastrow As Long 
Dim count As Integer 

lastrow = Sheets("List").Cells(Rows.count, 1).End(xlUp).Row 

For x = 2 To lastrow 
If Sheets("List").Cells(x, 1) = Sheet1.Range("E7") Then 
Sheet3.Range("A2") = Sheets("List").Cells(x, 1) 
Sheet3.Range("B2") = Sheets("List").Cells(x, 2) 

End If 

Next x 

End Sub 

Sub printdata() 

Sheet3.Range("A1:B2").PrintPreview 
'Sheet3.Range("A1:B2").PrintOut 
End Sub 

Sub Clear_Cells() 

Sheets("Sheet3").Range("A2:B2").ClearContents 
Sheets("Sheet1").Range("E7:E7").ClearContents 

End Sub 

ただし、これは一度に1つの行のみを表示します。

+3

ヒント、すなわち:あなたの質問から、 "すぐに答えてください。私は期限切れです..."を削除してください。 – CMArg

+1

常にセルA2とB2に書き込みます。必要な行をすべて出力していますが、最後の行はすべて上書きされます。 'Range(" A2 ")'を 'Cells(RowOut、1)'に置き換えます。ループの前に 'Range(" B2 ")'を 'Cell(RowOut、2)'に置き換えます。 'End If'の前に' RowOut = RowOut = 2'をループの前に追加してください。 –

+1

'すぐに答えてください。私は締め切りに入っています... - おっと - ごめんなさい - あなたが投稿したときに私は目を覚ましていませんでした - 私はあなたのコードの他のいくつかのエラーについて私の投稿には役に立たないと思います。 – YowE3K

答えて

0

また、あなたは、セルまたは範囲の参照後.VALUE使用する必要があります

Sheet3.Range( "A2")。値=シート( "リスト")。細胞(X、1).VALUE

+0

私は 'Value'を良い習慣にすることを検討しますが、' Value'は 'Range'のデフォルトプロパティですので、必須ではありません。 –

関連する問題