如何在 Excel 中创建包含多个工作表的唯一值列表

ms excelmicrosoft technologiescomputers更新于 2024/8/17 13:00:17

如果您使用包含多页的大型 Excel 工作簿,经常会遇到需要合并和分析其他工作表数据的情况。其中一项常见任务是从多个工作表中删除重复值,并生成一个唯一值列表。本文将提供分步说明和实用提示,帮助您合并数据并从多个工作表中提取特殊值,无论您对 Excel 的熟悉程度如何。本文将帮助您掌握成功完成此操作所需的技能和资源,从而节省数据分析任务的时间和精力。让我们开始吧,释放 Excel 的潜力,从多个工作表中生成完整的不同值列表!

创建包含多个工作表的唯一值列表

在这里,我们将首先创建一个 VAB 模块,然后运行它来完成任务。让我们通过一个简单的过程来学习如何在 Excel 中创建包含多个工作表的唯一值列表。

步骤 1

假设任何 Excel 工作簿的 A 列包含多个工作表的数据。

首先,右键单击工作表名称,然后选择"查看代码"以打开 VBA 应用程序。

步骤 2

然后点击"插入",选择"模块",然后将以下代码复制到文本框中。

插入 > 模块 > 复制。

示例

Sub SheelsUniqueValues()
Dim xObjNewWS As Worksheet
Dim xObjWS As Worksheet
Dim xStrAddress As String
Dim xIntRox As Long
Dim xIntN As Long
Dim xFNum As Integer
Dim xMaxC, xColumn As Integer
Dim xR As Range
xStrName = "Unique value"
Application.ScreenUpdating = False
xMaxC = 0
Application.DisplayAlerts = False
For Each xObjWS In Sheets
   If xObjWS.Name = xStrName Then
      xObjWS.Delete
      Exit For
   End If
Next
Application.DisplayAlerts = True
For xFNum = 1 To Sheets.Count
   xColumn = Sheets(xFNum).Cells.Find(What:="*", after:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
   If xMaxC < xColumn Then
      xMaxC = xColumn
   End If
Next xFNum
Application.DisplayAlerts = True
Set xObjNewWS = Sheets.Add(after:=Sheets(Sheets.Count))
xObjNewWS.Name = xStrName
For xColumn = 1 To xMaxC
   xIntN = 1
   For xFNum = 1 To Sheets.Count - 1
      Set xR = Sheets(xFNum).Columns(xColumn)
      If TypeName(Sheets(xFNum).Columns(xColumn).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)) <> "Nothing" Then
         xIntRox = xR.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
         Sheets(xFNum).Range(Cells(1, xColumn).Address & ":" & Cells(xIntRox, xColumn).Address).Copy
         Cells(xIntN, xColumn).PasteSpecial xlValues
         xIntN = xIntRox + xIntN + 1
      End If
   Next xFNum
   If xIntRox - 1 > 0 Then
   xIntRox = xIntN - 1
   xStrAddress = Cells(1, xColumn).Address & ":" & Cells(xIntRox, xColumn).Address
   Range(xStrAddress).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
   Range(xStrAddress).Copy
   Cells(1, xColumn + 1).PasteSpecial xlValues
   Range(xStrAddress).AdvancedFilter Action:=xlFilterInPlace, Unique:=False
   Columns(xColumn).Delete
   Range(xStrAddress).Sort key1:=Cells(1, xColumn), Header:=xlNo
   End If
Next xColumn
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

步骤 3

然后点击 F5 完成任务。之后,您会看到 A 列中的所有唯一值都已列出。

总结

在本教程中,我们通过一个简单的示例演示了如何在 Excel 中创建多个工作表中的唯一值列表,以突出显示特定的一组数据。


相关文章


有用资源