2016-09-25 39 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 

但是,這一次只顯示一行。

+3

提示:從你的問題中刪除「請立即回答,我在截止日期......」 – CMArg

+1

你總是寫信給單元格A2和B2。您正在輸出所有必需的行,但除最後一行外都被覆蓋。將'Range(「A2」)'替換爲'Cells(RowOut,1)''。在循環前添加'RowOut = 2',並在'End If'之前的循環內部替換'Range(「B2」)'''Cells(RowOut,2)'。 –

+1

'請立即回答。我在截止日期......' - 哎呀 - 對不起 - 當你發佈時我沒有醒來 - 我想現在在我的發佈中沒有用到你的代碼中的其他一些錯誤,因爲爲你提供幫助爲時已晚。 – YowE3K

回答

0

也應後的細胞或範圍引用使用。價值即

Sheet3.Range( 「A2」)。值=表( 「列表」)。將細胞(X,1)。價值

+0

我認爲包括'價值'是一種很好的做法,但'價值'是'範圍'的默認屬性,所以它不是必需的。 –