首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA从Sheet1 +中的唯一列值创建新工作表,并显示相邻行信息

VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的编程语言。它可以通过编写宏来自动化和定制化Office应用程序的功能。

在Excel中,可以使用VBA从Sheet1中的唯一列值创建新工作表,并显示相邻行的信息。下面是一个示例代码:

代码语言:vba
复制
Sub CreateNewSheet()
    Dim sourceSheet As Worksheet
    Dim newSheet As Worksheet
    Dim lastRow As Long
    Dim uniqueValues As Collection
    Dim cellValue As Variant
    
    ' 获取源工作表
    Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
    
    ' 获取源工作表中唯一列的最后一行
    lastRow = sourceSheet.Cells(sourceSheet.Rows.Count, "A").End(xlUp).Row
    
    ' 创建一个集合用于存储唯一值
    Set uniqueValues = New Collection
    
    ' 遍历唯一列的值,并将唯一值添加到集合中
    For i = 2 To lastRow
        cellValue = sourceSheet.Cells(i, "A").Value
        On Error Resume Next
        uniqueValues.Add cellValue, CStr(cellValue)
        On Error GoTo 0
    Next i
    
    ' 根据唯一值创建新工作表,并显示相邻行的信息
    For Each cellValue In uniqueValues
        ' 创建新工作表
        Set newSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        newSheet.Name = "Sheet_" & cellValue
        
        ' 在新工作表中显示相邻行的信息
        For i = 2 To lastRow
            If sourceSheet.Cells(i, "A").Value = cellValue Then
                ' 复制相邻行的信息到新工作表
                sourceSheet.Rows(i).Copy newSheet.Cells(newSheet.Cells(newSheet.Rows.Count, "A").End(xlUp).Row + 1, "A")
            End If
        Next i
    Next cellValue
End Sub

上述代码首先获取名为"Sheet1"的源工作表,然后遍历唯一列的值,并将唯一值添加到集合中。接下来,根据唯一值创建新的工作表,并在新工作表中显示相邻行的信息。最后,将新工作表命名为"Sheet_唯一值",并将相邻行的信息复制到新工作表中。

这是一个简单的示例,可以根据实际需求进行修改和扩展。在实际应用中,可以根据需要对新工作表的格式、样式等进行进一步的定制。

腾讯云提供了一系列云计算相关的产品和服务,例如云服务器、云数据库、云存储等。具体推荐的产品和产品介绍链接地址可以根据实际需求和使用场景进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA高级筛选应用:拆分或更新子工作

这里已经突出标示了Dept A(橙色),因为这是我们可能希望为这个部门创建工作,然而,如果已经有一个标题为“A”工作,那么就不会创建工作,只会将数据添加到现有工作。...其中心思想是创建一个唯一工作,其中包含与部门相关数据。因此,这里会为A、B和C分别创建一个工作。如果添加了任何部门,则也为这些部门创建工作。...图1 这将有效地使代码更长一些,因为需要对此进行测试,但它工作得很好。 下面的VBA代码有两个作用,它首先创建一个唯一,然后基于该唯一使用高级筛选。...[M1], , 1 这里只是选择了前3000,而不是创建一个动态列表。高级筛选将列出唯一项,并将其放在M。...接下来,代码需要循环遍历该唯一,这里使用了一个简单For循环,第2循环到M中最后使用

1.5K20

VBA自动筛选完全指南(下)

它复制筛选,添加新工作,然后将这些复制粘贴到新工作。...如果没有筛选显示一条消息退出程序。如果有筛选,则复制筛选数据,插入新工作,然后粘贴这些数据到插入工作。...如果为TRUE,则表示已应用筛选,使用ShowAllData方法显示所有数据。注意,这不会删除筛选,筛选图标仍然可用。 在受保护工作中使用自动筛选 默认情况下,当工作受保护时,不能应用筛选。...因此,需要使用代码来保护工作确保在其中启用了自动筛选。这在创建动态筛选时是有用。 下面的代码保护工作,同时允许在其中使用筛选和VBA宏。...然而,为什么需要使用VBA代码来执行此操作?因为将其与其它代码结合起来,可以创建更加强大自动化工作。 注:本文学习整理自trumpexcel.com,略有修改。

3.4K30

Excel数据分割(实战记录)

End Sub 请按照以下步骤操作(Sheet): 打开Excel,按下ALT + F11打开VBA编辑器。 在左侧“项目资源管理器”窗格,找到你工作簿,双击打开。...如果每10数据创建一个工作簿而不是工作(Sheet),可以使用以下VBA代码: 复制代码 Sub 分割数据() Dim 原始 As Worksheet Dim As...End Sub 请注意,此代码将创建工作簿,并在每个新工作簿复制相应数据。你可以根据需求修改代码保存路径和文件名。运行代码后,将显示一个弹出窗口,指示成功分割为多少个。...如果你想在每个包含标题分割数据,可以使用以下修订版 VBA 代码: 复制代码 Sub 分割数据() Dim 原始 As Worksheet Dim As Workbook...End Sub 这段代码在每个通过将标题和对应数据复制到新工作簿来实现分割。新工作簿第一是标题,接下来是对应数据

27920

Excel宏教程 (宏介绍与基本使用)

AutoCAD2000)等对VBA支持,这些软件也已进入到了VBA控制范 围;2、可以将用VBA编写程序复制到Visual Basic调试运行,从而实现用Visual Basic来控制有关应用程序...需要注意是:在使用过程excel会自动重排工作索引号,保持按照其在工作标签左至右排列,工作索引号递增。因此,由于可能进行工作添加或删除,工作索引号不一定始终保持不变。...5、 :Rows、Columns、Row、Column Rows、Columns分别代表活动工作、单元格区域范围Range、指定工作所有行数、数。...利用Rows、Column可以获得区域中第一块第一行号、第一号,所得均以十进制数表示。...如下例将工作Sheet1″A1单元格赋给Integer变量I,并将I+1赋给当前工作B1单元格: Dim I As Integer I=Worksheets(“Sheet1”).Cells

6.3K10

用 Python 帮运营妹纸快速搞定 Excel 文档

您将了解以下内容: Python 读写 Excel 第三方库 工作簿获取工作 读取单元格数据 遍历 写入 Excel 电子表格 添加和删除工作 添加和删除 大多数公司和大学都使用...您将使用单元格对象属性来获取信息。...第二个示例显示了如何设置工作标题以及在哪个索引处插入工作。参数index = 1表示该工作将在第一个现有工作之后添加,因为它们索引0开始。...索引1开始,而工作索引0开始。这有效地将A所有单元格移到B。然后第2开始插入两个。 现在您知道了如何插入列和,是时候来了解如何删除它们了。...在本文中,您掌握了以下内容: Python 处理 Excel 第三方软件包 工作簿获取工作 读取单元格数据 遍历 写入 Excel 电子表格 添加和删除工作 添加、删除 OpenPyXL

4.5K20

Excel VBA编程教程(基础一)

编写第一个VBA宏 「宏」:简单说,宏是一段可以运行 VBA 代码片段。 step one 创建启用宏工作簿 首先新建一个工作簿,并将工作簿保存为「启用宏工作簿」类型。...step three Excel 工作簿 VBA 代码通常保存在工作对象或模块。本例,我们用模块保存 VBA 代码。...首先选中左侧工程列表工作簿,后右键,在弹出选项列表,选择「插入」。二级菜单,选择「模块」,完成插入模块。 插入完成后,在工程列表对应工作簿内,在模块文件夹下,显示插入模块。...VBA 工程:显示当前 VBA 工程包含所有对象。通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作对象、模块等。 属性窗口:查看和设置选中对象属性窗口。...With 结构实例 现在看一个实际例子,需要将工作簿 Sheet1 工作设置新名称,然后设置标签颜色为黑色,最后隐藏工作

11K22

啰哩啰嗦地讲透VBA引用单元格区域18个有用方法--Cell属性和Offset属性

VBA对象可以是工作(在Worksheet.Cells属性情形)或可以是单元格区域(Range.Cells属性情形)。 行号和号是编号,通常使用数字。...下面的屏幕截图让你更好了解数字编号分配过程: 例如,如果想使用该语法引用单元格A2,则合适引用是: Cells(16385) 对工作簿Book.xlsm工作Sheet1单元格A2完全限定引用是...这种情况下,引用是: Range(“A1:B10”).Cells(9) 下面的屏幕截图显示了将单元格索引编号分配给相关区域内单元格方式: 如果处理工作簿Book1.xlsm工作Sheet1单元格区域...使用Worksheet.Cells属性引用工作所有单元格 这可能是实现Cells属性最简单但也是最受限制方法。语句: 表达式.Cells 返回相关Excel工作所有单元格。...例如,下面的语句返回Book1.xlsm工作Sheet1所有单元格: Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Cells

3.2K40

啰哩啰嗦地讲透VBA引用单元格区域18个有用方法--Range属性

VBA允许用户以多种不同方式引用单元格区域。 什么是Range对象 Range对象代表工作单元格区域,这意味着可以使用Range对象来引用: 单个单元格 一或一单元格。...特别是,这里并没有指定所引用特定Excel工作簿或工作。为此,必须理解下面的内容。 集合引用对象 在VBA,对象集合是一组相关对象。...这种简化比前一种更复杂,因为它依赖于正确识别活动工作簿和工作,这比识别Excel应用程序本身稍微困难一些。 然而,也可以使用这两个默认对象创建更简单VBA对象引用。...可以按如下方式引用整行或整列: :Range(“行号:行号”) :Range(“字母:字母”) 例如,如果要引用特定工作第一,其语法为: Range(“1:1”) 如果要引用第一A)...[A1] 快捷方式2:引用整行或整列 应用方括号快捷方式是: :[行号:行号] :[字母:字母] 例如,如果引用工作第1或第1,其语法为: :[1:1] :[A:A] 假设在Book1

5.8K20

VBA自动筛选完全指南(上)

图1 如果只需要筛选数据执行一些基本操作,建议直接使用Excel工作界面提供内置筛选功能。而当希望将筛选数据作为自动化一部分时,应使用VBAAutofilter方法。...例如,假设希望基于下拉选择快速筛选数据,然后将筛选数据复制到新工作。虽然这可以使用内置筛选功能和一些复制粘贴来完成,但手动完成这项工作可能需要花费大量时间。...Field:可选参数,这是要筛选号,数据集左侧开始计算。因此,如果要根据第二筛选数据,则该应为2。 Criteria1:可选参数,这是筛选数据集所基于条件。...Sub 上面的代码引用了工作Sheet1,同时引用了单元格A1(数据集中一个单元格)。...注意,这里使用了Field:=2,因为“项目”是数据集中左起第二。 示例:同一多个条件(AND/OR) 仍然使用上图2所示数据集,这次筛选“项目”“打印机”或者“空调”所有数据。

3.6K10

Excel编程周末速成班第3课:Excel对象模型

例如,你程序打开一个工作簿并需要使用其现有的一个工作。在其他时候,该对象不存在,并且你程序必须创建该对象获得引用(例如,当向工作簿添加新工作时)。...这是因为Excel具有两类工作,其中包含数据以及嵌入式图表工作和图表工作(仅包含一个图表)。因此,Sheets集合包含Sheet对象,有两种类型:工作和图表工作。...一种是通过其在集合数字位置;另一种是通过对象唯一键。集合键取决于它包含对象,通常是标识对象信息。...此名称显示在Excel屏幕上工作标签上,也可以用于Worksheets或Sheets集合获取引用。...引用工作 你已经看到了使用创建工作时返回引用或Worksheets集合获取引用来引用工作簿特定工作几种方法。

5K30

VBA代码:将水平单元格区域转换成垂直单元格区域

标签:VBA 下图1所示是一个常见需求,在多个中放置着每个月份数据,需要将月份移到单个,同时保留报表所有描述性信息。...图1 数据显示了有关部门、账户和成本中心描述性信息,而月度数据显示在许多。现在希望看到是,左侧3数据重复,而财务数据则逐行重复。数据输出如下图2所示。...图2 这可以使用一个简单VBA程序来实现。首先,需要两个数组,一个将保存原始数据,另一个将格式化数据放在其中。...For i=2 To UBound(ar,1) 原始循环第2开始,因为忽略了标题,这5标题位于Output工作第1。...[A2].Resize(n, 5) = WorksheetFunction.Transpose(var) 上面的代码是第2开始,并将区域调整为n所在任何,因此可能是108,共有5

1.3K30

数据分析必备技能:数据透视使用教程

2 创建数据透视 此处将工作重命名为sheet1 首先确保表格第一是表头 点击任意位置 选中 Ribbon “插入” 点击第一个图标“数据透视”,出现“创建数据透视”对话框 ?...注意观察对话框各种选项,这里我们都采用默认 点击“确定”后,一个空数据透视表出现在了新工作: ?...将“平”拖放至“”列表“球队”上方;表示在“平局”维度上,嵌套(nesting)归纳了“球队”维度 将“更新日期”拖放至“筛选器”列表;表示可以根据更新日期来筛选显示表格数据 ?...以上就是创建数据透视基本过程。 7 自动化创建 基本数据透视创建和调整并不复杂,但如果有很多类似的重复性工作的话,使用一些简单 VBA 来自动化这一过程,将极大提升工作效率。...8 总结 本文简单展示了在 Excel 创建透视过程,以及其筛选、展示数据方式 通过 VBA 可以完成和手动创建一样甚至更多功能,大大提高工作效率

4.5K20

示例工作簿分享:筛选数据

标签:VBA,用户窗体 这是一个很好示例,充分展示了VBA和用户窗体控件编程技术。 示例中有一个数据工作Sheet1,包含有一个列表,每一单元格中都有很多用逗号分隔数据,如下图1所示。...图1 工作Sheet2列出了数据唯一,如下图2所示,可以根据工作Sheet1数据添加而更新。 图2 创建了一个用户窗体,用来进行数据筛选,如下图3所示。...图3 这个示例工作簿有以下功能: 1.按F3会运行更新代码更新工作Sheet2唯一项,并以红色标注出新添加项。 2.按F4键将调出图3所示用户窗体。...3.在用户窗体: (1)左侧列表框列出了工作Sheet2所有唯一项。 (2)在搜索框输入内容时,会随着输入自动缩减左侧列表框内容。...(3)选择左侧列表框项后,单击“添加”按钮,将其移至右侧列表框。 (4)单击“执行”会进行筛选操作,并在工作Sheet1显示结果。

12010

Power Query-汇总文件夹工作簿多工作到一个文件

Power Query-汇总文件夹工作簿多工作到一个文件 我们在常感叹“不懂office Excel是电子表格,懂就是Excel”!! 为什么呢!...当我们在学习VBA编程汇总多工作簿多工作到一个文件时,微软在Office版本中有开发出个神器Power BI, 这个组件在office2013和office2016是整合在一起,office2010...今天来体验一下Power Query强大功能 【问题】:上一次学习VBA一个例子:下发给下面各单位表格收集信息资料,上交上来后有很多个文件,文件内容格式是一样,我想把这些资料汇总在一起, 1.上交文件很多...和Name两,删除其他 第五步,点击双箭头地方出现合并文件窗口,选中Sheet1,(这是说每个文件有三个工作,我只要所有的Sheet1合并就可以啦) 第六步:选中sheet1—确定...第八步,删除---删除重复 最后关闭并上载---就可以啦,再整理一下 有一个好处就是当文件内容修改、添加、减小等操作后只要刷新一下就可啦期。 ======今天就学习到此=====

2K50

Excel公式技巧14: 在主工作中汇总多个工作满足条件

在《Excel公式练习32:将包含空单元格多行多单元格区域转换成单独去掉空单元格》,我们讲述了一种方法,给定由多个组成单元格区域,该区域返回由所有非空单元格组成单个。...本文提供了一种方法,在给定一个或多个相同布局工作情况下,可以创建另一个“主”工作,该工作仅由满足特定条件所有工作数据组成。并且,这里不使用VBA,仅使用公式。...图3 想要创建一个主工作Master,其数据来源于上面三个工作D为“Y”数据: ?...1、3和4对应于工作Sheet1D为“Y”相对行号。...k,即在工作Sheet1匹配第1、第2和第3小,在工作Sheet2匹配第1和第2小,在工作Sheet3匹配第1小

8.7K21

VBA专题10-25:使用VBA操控Excel界面之一个示例程序

当打开工作簿时, 1.1 激活特定工作(名为Sample)。 1.2 开始3被冻洁。 1.3一个特定50)向上滚动并成为解冻窗格顶部。...2.3 如果选择了指定项目(例如Group2),那么激活指定工作(名为Sheet2),对其外观作出下面的改变: 2.3.1 在页面布局视图中显示工作 2.3.2 隐藏标题 2.3.3 删除工作网格线...如果激活工作(名为Sheet1)具有指定工作级命名区域(例如,名为MyRange单元格区域),那么启用Custom选项卡不同组一组控件按钮。...能够单元格上下文菜单访问自定义控件(名为Remove USD)。 要创建这个程序,执行下列步骤: 1. 创建一个新工作簿,将其保存为启用宏工作簿。 2....右击工作选项卡,选择插入来添加一个图表工作。 3. 重命名工作为Sample、Sheet1和Sheet2。 4. 激活工作Sheet1,选择一个单元格区域,在“名称”框输入“Sheet1!

2.2K10

Excel应用实践25: 找出两个单元格区域中不相同数据

有两组数据,一组是原来工作存储,一组是办公系统中下载,这两组数据应该完全一样,但实际发现存在几个不相同数据,现在想要找出这些不相同数据,可是数据有上千条,一个个对照的话,速度慢不说,还不容易找全...实际上,这就是在工作中比较两数据。将工作存储数据放在一,将下载数据放在另一,比较这两数据。 我们来看看一组简化数据比较,介绍实现方法。 最简单方法是使用Excel条件格式功能。...第2步:选取功能区“开始”选项卡“条件格式——突出显示单元格规则——重复”命令,如下图2所示。 ?...图2 第3步:在弹出”重复”对话框,在左侧下拉列表中选择“唯一”,右侧“设置为”列表中选择适当颜色选项,如下图3所示。 ?...图3 单击“确定”按钮,结果如下图4所示,标识出了两组数据不相同。 ? 图4 接下来,我们使用VBA代码分别找出两组数据不相同输出。

1.5K20

EXCEL VBA语句集300

 工作簿 (8) Workbooks.Add() ‘创建一个工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1工作簿 (10...‘当前工作已使用行数 (19) Rows.Count ‘获取工作行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum...(i).Name ‘获取工作i名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作网格线显示...) cells.count ‘返回当前工作单元格数 (45) Selection.Range(“E4”).Select ‘激活当前活动单元格下方3,向右4单元格 (46) Cells.Item...‘添加图表工作 (76) ActiveChart.SetSourceData Source:=Sheets(“Sheet1”).Range(“A1:D5”), _ PlotBy:=xlColumns

1.7K40
领券