簡體   English   中英

檢查其他多個工作表上是否存在excel單元格值-如果是,則返回存在於另一列中的工作表名稱

[英]Check if an excel cell value exists on multiple other sheets - and if so return the name of the sheet it exists on in another column

我的工作簿的前兩頁各包含一個單獨的列,即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

等等...

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM