我的工作簿的前两张每一页都包含一列,即A列,大约有2000个值。除了这两张纸之外,我还有42张其他纸张,每张纸都包含20-1500个值,也在一列A中。
对于表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
等...
答案 0 :(得分: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
答案 1 :(得分:0)
在工作表集合上使用For Each循环以循环显示工作表。然后使用Range.Find方法检查是否在工作表上找到了单元格。如果是,只需将工作表名称写入封面。您可以连接到一个单元格,或使用计数器移动到下一个可用列。