2016-03-08 22 views
0

我的工作簿的前兩個工作表均包含一列(大約2000個值爲A的列) 。除了這兩張紙以外,我還有42張其他紙張,每張紙張都包含20-1500的值,也在單列A中。檢查多個其他工作表上是否存在excel單元值 - 如果是,則返回其另一列中存在的工作表的名稱

對於紙張1和2的A列中的每個〜2000值,我嘗試以檢查這些值是否存在於其他42張中的任何一張中。如果是的話,我想他們的存在表的名稱在列B露面

所以:

IF sheet1.A1.value EXISTS IN sheet3.A:A 
RETURN sheet3.name 
ELSE IF sheet1.A1.value EXISTS IN sheet4.A:A 
RETURN sheet4.name 

等等

回答

1
Sub test() 

Dim ws As Worksheet 
Dim i As Integer 
Dim fRange As Range 

'Perform search for Sheet1 
Set ws = Sheets("Sheet1") 

i = 3 

While i <= ActiveWorkbook.Sheets.Count 

ws.Select 
Set fRange = Range("A1") 
fRange.Select 

While fRange.Value <> "" 

Sheets(i).Select 
Range("A1").Select 

While ActiveCell.Value <> "" 

If ActiveCell.Value = fRange.Value Then 

fRange.Offset(0, 1).Value = Sheets(i).Name 
ActiveCell.Offset(1, 0).Select 

Else 

ActiveCell.Offset(1, 0).Select 

End If 

Wend 

Set fRange = fRange.Offset(1, 0) 

Wend 

i = i + 1 

Wend 

'Perform search for Sheet2 
Set ws = Sheets("Sheet2") 

i = 3 

While i <= ActiveWorkbook.Sheets.Count 

ws.Select 
Set fRange = Range("A1") 
fRange.Select 

While fRange.Value <> "" 

Sheets(i).Select 
Range("A1").Select 

While ActiveCell.Value <> "" 

If ActiveCell.Value = fRange.Value Then 

fRange.Offset(0, 1).Value = Sheets(i).Name 
ActiveCell.Offset(1, 0).Select 

Else 

ActiveCell.Offset(1, 0).Select 

End If 

Wend 

Set fRange = fRange.Offset(1, 0) 

Wend 

i = i + 1 

Wend 

End Sub 
0

使用For Each循環工作表集合以遍歷工作表。然後使用Range.Find方法檢查單元是否在工作表上找到。如果是,只需將表格名稱寫入封面。您可以連接到一個單元格,或使用計數器移動到下一個可用列。

相關問題