根据某一列拆分Excel为多个表格
Option Explicit
Option Base 1Sub SplitData()Application.ScreenUpdating = FalseApplication.DisplayAlerts = FalseDim self As WorksheetSet self = ActiveSheetDim nLastRowNum As LongDim nLastColumnNum As LongDim i As Long' 删除其他的sheetFor i = Sheets.Count To 1 Step -1If Sheets(i).Name <> self.Name ThenSheets(i).DeleteEnd IfNext iApplication.DisplayAlerts = TrueApplication.ScreenUpdating = True'获取全部数据范围nLastRowNum = Cells(Rows.Count, 1).End(xlUp).RownLastColumnNum = Cells(nLastRowNum, Columns.Count).End(xlToLeft).Column'获取标题Dim titleRange As RangeSet titleRange = Application.InputBox(prompt:="请选择标题区域:", Type:=8)' 有效数据开始行Dim nRowValidData As LongnRowValidData = titleRange.Row + titleRange.Rows.Count' 获取拆分列的信息,只需要列号Dim splitColumnRange As RangeSet splitColumnRange = Application.InputBox(prompt:="请选择拆分的列;选择任何一个该列的单元格即可", Type:=8)Dim columnNumToSplit As LongcolumnNumToSplit = splitColumnRange.Column' 需要拆分的值字典Dim splitValueDict As Object' 辅助字典用来保证顺序Dim splitValueDictReverse As ObjectDim indexArray() As LongSet splitValueDict = CreateObject("Scripting.Dictionary")Set splitValueDictReverse = CreateObject("Scripting.Dictionary")Dim cellValue As StringDim ws As WorksheetFor i = nRowValidData To nLastRowNum Step 1cellValue = Cells(i, columnNumToSplit).Text'1. 创建新的sheet;'2. 拷贝标题信息到新的sheetIf Not splitValueDict.Exists(cellValue) ThensplitValueDict(cellValue) = isplitValueDictReverse(i) = cellValueSet ws = Sheets.Add(After:=Worksheets(Worksheets.Count))ws.Name = cellValueself.ActivatetitleRange.Copy _ws.Range(ws.Cells(titleRange.Row, titleRange.Column), ws.Cells(nRowValidData - 1, titleRange.Column))End If' 拷贝其他内容Range(Cells(i, 1), Cells(i, nLastColumnNum)).Copy _GetLastPasteRangeBySheetName(cellValue, nLastColumnNum)Next iEnd SubPublic Function GetLastPasteRangeBySheetName(ByRef SheetName As String, columnNum As Long) As VariantDim wks As WorksheetDim nLastRowNum As LongSet wks = ActiveWorkbook.Worksheets(SheetName)nLastRowNum = wks.Cells(wks.Rows.Count, 1).End(xlUp).RowSet GetLastPasteRangeBySheetName = wks.Range(wks.Cells(nLastRowNum + 1, 1), wks.Cells(nLastRowNum + 1, columnNum))End Function
根据某一列拆分Excel为多个表格相关推荐
- python按某列拆分excel表格_python带格式拆分excel表单,copy库完美搞定
python拆分excel表单,生成单独的excel文件,网上这方面的文章很多.但大多只讲主功能如何实现,让拆分后的表保持和原表单一致的格式,则鲜有人讲.本文通过调用copy库,完美实现带格式拆分表单 ...
- python按某列拆分excel表格_利用Python+Pandas实现从一个excel表中提取列形成新表
简要 利用python实现把一个工作表中的某些列,和其中单独的一列,提取成为一个个新表. 如图(处理前)蓝色部分是需要保留的列,红色是需要一项一项分出来作为单独表格的列. 其中,第一行的名字是用的回车 ...
- php按一列拆分excel表格,excel表格要根据某一列数据拆分-excel怎么按照某一列拆分表格...
求助:一张excel表,希望按照某列内容(比如某列为... 是把这一列进行筛选或者排序,然后不断制到新表中,如果较多,可以VBA进行自动的复制和新建文件. 如果需要代劳,可以[百度云盘](一个使用百度 ...
- python处理数据——根据某列拆分excel文件
需求 这里想要把一个大excel根据某列拆分为多个小的excel,再投递到队列中,以提高处理效率. 实现方法 这里的python代码非常简单: import pandas as pd import o ...
- python按某列拆分excel表格_Python实现将excel表格按某列拆分为多个sheet(模板格式不变)...
#将一个excel表格,按照某列分为不同的sheet,并且将id作为sheet表格的名称 from openpyxl import load_workbook #加载需要拆分的总表个 wb = loa ...
- python按某列拆分excel表格_把一张Excel表按照固定列分成不同工作薄的小白方法...
这是结合百度经验和论坛上的资料整理的方法,分两步,第一步是把一个完整的工作表按照某一列分解为不同的工作表.第二步是把这些工作表在分别拆为工作薄. 个人觉得这是一个相对比较简单的方法,也尝试用Pytho ...
- python按某列拆分excel表格_Python对Excel按列值筛选并拆分表格到多个文件的代码...
场景:集团中心下发本省数据时,并未按地市.业务拆分,现需要按地市.业务拆分并分发到地市. 本文利用Python的pandas包实现了以上场景. 注:本示例代码只实现按单列拆分,如果需要多列筛选拆分,请 ...
- python怎样按某一列值拆分Excel表格
pd.ExcelWriter@python 用python按某一列拆分Excel工作表,将内容写入一个工作簿 本次以"按照表中的某一列,将一张表格拆分为多张表"的需求为例,简单介绍 ...
- Excel·VBA按列拆分工作表、工作簿
改进<将excel按照某一列拆分成多个文件>,使代码更具通用性,可以实现将工作表拆分为工作表或工作簿 对Excel表格数据按照某列的值,将工作表拆分 目录 1,工作表按列拆分为工作表 2, ...
最新文章
- 腾讯云+未来高峰对话:智能+时代的创新与探索
- Algs4-1.4.7统计算术运算与比较次数
- HTML areamap标签及在实际开发中的应用
- 工具推荐:22款最流行的计算机取证工具【2017年更新版】
- 【springboot】启动时指定lib目录
- composer 笔记
- 【转】刨根究底CSS(2):CSS中的各种值——初始值,就是默认值吗?
- C++11:右值引用和转移赋值
- nacos集成dubbo实现远程服务调用多服务端2
- 云端调用android函数,【探坑】Bmob的云端逻辑
- CCF NOI1003 猜数游戏
- 数据库中的字段NULL值和''
- python实现典型相关分析_典型相关分析 CCA
- Unity 工具之 UniWebView 内嵌网页/浏览器到应用中,并且根据UGUI大小放置(简单适配UGUI)
- 利用IAR软件,将KEIL项目工程直接转换IAR项目工程
- 管理造成的问题:京东商城后台语言改用java
- 中兴f460光猫资料
- 西门子触摸屏程序锁屏V1.0
- 一、用于数据分析的Excel技巧
- ToB和ToC端产品分别指什么