EXCEL如何将1个工作表按条件分割成多个工作表

EXCEL如何将1个工作表按条件分割成多个工作表,第1张

*** 作步骤:

原始数据表如下(名称为:数据源),需要根据B列人员姓名拆分成每个人一个工作表。

点击开发工具-Visual Basic或者Alt+F11的快捷键进入VBE编辑界面。

如下图所示插入一个新的模块。

如下图,粘贴下列代码在模块中:

Sub CFGZB()

Dim myRange As Variant

Dim myArray

Dim titleRange As Range

Dim title As String

Dim columnNum As Integer

myRange = ApplicationInputBox(prompt:="请选择标题行:", Type:=8)

myArray = WorksheetFunctionTranspose(myRange)

Set titleRange = ApplicationInputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8)

title = titleRangeValue

columnNum = titleRangeColumn

ApplicationScreenUpdating = False

ApplicationDisplayAlerts = False

Dim i&, Myr&, Arr, num&

Dim d, k

For i = SheetsCount To 1 Step -1

If Sheets(i)Name <> "数据源" Then

Sheets(i)Delete

End If

Next i

Set d = CreateObject("ScriptingDictionary")

Myr = Worksheets("数据源")UsedRangeRowsCount

Arr = Worksheets("数据源")Range(Cells(2, columnNum), Cells(Myr, columnNum))

For i = 1 To UBound(Arr)

d(Arr(i, 1)) = ""

Next

k = dkeys

For i = 0 To UBound(k)

Set conn = CreateObject("adodbconnection")

connOpen "provider=microsoftjetoledb40;extended properties=excel 80;data source=" & ThisWorkbookFullName

Sql = "select from [数据源$] where " & title & " = '" & k(i) & "'"

WorksheetsAdd after:=Sheets(SheetsCount)

With ActiveSheet

Name = k(i)

For num = 1 To UBound(myArray)

Cells(1, num) = myArray(num, 1)

Next num

Range("A2")CopyFromRecordset connExecute(Sql)

End With

Sheets(1)Select

Sheets(1)CellsSelect

SelectionCopy

Worksheets(SheetsCount)Activate

ActiveSheetCellsSelect

SelectionPasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

ApplicationCutCopyMode = False

Next i

connClose

Set conn = Nothing

ApplicationDisplayAlerts = True

ApplicationScreenUpdating = True

End Sub

如下图所示,插入一个控件按钮,并指定宏到刚才插入的模块代码。

点击插入的按钮控件,根据提示选择标题行和要拆分的列字段,本例选择“姓名”字段拆分,当然也可以选择C列的“名称”进行拆分,看实际需求。

代码运行完毕后在工作簿后面会出现很多工作表,每个工作表都是单独一个人的数据。具体如下图所示:

注意:

1)原始数据表要从第一行开始有数据,并且不能有合并单元格;

2)打开工作簿时需要开启宏,否则将无法运行代码。

用游标应该能轻松搞定

DECLARE @ClassID VARCHAR(32);

DECLARE @NewTable VARCHAR(32); 

DECLARE CURSOR_TMP CURSOR FAST_FORWARD FORWARD_ONLY LOCAL READ_ONLY

FOR

SELECT 班级 FROM 学生信息表 GROUP BY 班级;

OPEN CURSOR_TMP;

FETCH NEXT FROM CURSOR_TMP INTO @ClassID;

WHILE @@FETCH_STATUS=0

BEGIN

  SET @NewTable='New_Class_'+@ClassID;--新的表名称

  --EXEC('DROP TABLE '+@NewTable+';'); 

  EXEC('SELECT  INTO '+@NewTable+' FROM 学生信息表 WHERE (班级='+@ClassID+');');

  --设置主键,约束等 

  

  FETCH NEXT FROM CURSOR_TMP INTO @ClassID;

END;

CLOSE CURSOR_TMP;

DEALLOCATE CURSOR_TMP;

GO

--确定数据正确后再处理源表数据

分库分表为什么分表是分库倍数关系

分库分表为什么分表是分库倍数关系

分库分表是一种分布式系统设计技术,它可以将数据拆分成多个数据库,每个数据库中的表也可以拆分成多个表。分库分表的好处在于可以提高系统的可用性和可伸缩性,提高数据库的查询性能,减少单台服务器的负载,从而节省硬件资源。

分库分表的关系是指每个数据库中的表数量是分库数量的倍数,也就是说,如果有3个数据库,那么每个数据库中的表数量应该是3的倍数。这样做的好处是可以保证数据库中的表数量在不同的数据库之间保持一致,从而减少数据库的负载,提高系统的可用性和可伸缩性。

Visual foxpro对数据库的 *** 作和其它数据库系统一样,是通过对数据库中数据、信息进行加工、处理,为了方便用户对数据库的 *** 作,Visual foxpro系统提供了一种更方便的工具——表单设计器。利用表单设计器,可以在表单中添加各种丰富的对象,让这些对象去响应用户和系统的事件。可以说,Visual foxpro中的表单设计是为用户对数据库的一系列的输入、输出、查询、显示等 *** 作提供了方便、有效的途径。

---- 在Visual foxpro中要设计好一个表单,并不是一件很容易的工作,好在Visual foxpro系统提供了一系列的设计向导,包括数据库表的设计向导,表单设计向导,报表设计向导,标签设计向导等,对于初学者来说,利用向导来设计数据库或表单是一件非常愉快的事情。

---- 下面就数据库和表单来介绍如何利用向导。

---- 1、创建数据库表。

---- “表向导”基于典型的表结构创建表。“表向导”允许从样表中选择满足需要的表。在一步步经过向导的过程中,可以定制表的结构和字段。也可以在向导保存表之后修改表。如果有一个或多个数据库打开,表向导自动将新建表添加到当前数据库中。如果没有数据库打开,表向导将创建一个自由表。

---- 步骤 1 - 字段选取

---- 从“工具”菜单指向“向导”子菜单,选择“表”命令,d出“表向导”对话框,“表向导”对话框包含一个表结构的内嵌设置,用于简化表的设计。“样表”框列出了Visual foxpro提供的全部样表,可以从中选择要用的样表;“可用字段”框列出了样表中预先设计的字段,可以从中选择要在新表中使用的字段。“可用字段”框右侧有4个上下排列的按钮,上面两个用于从“可用字段”框移到“选定字段”框中,下面两个用于从“选定字段”框移到“可用字段”框,“选定字段”即是新表中所用字段。当选定字段以后,单击“下一步”即可进入下一步骤。

---- 选定了所用字段以后,还必须确定当前表是自由表还是要求加入到指定的数据库中。然后单击“下一步”。

---- 步骤 2 - 修改字段设置

---- 进入这一对话框,可以对每个字段的设置进入修改,包括字段名、类型、宽度、小数位等,当修改完所有字段以后,即可进入下一步 *** 作。

---- 步骤 3 - 表索引

---- 用户如须要对该数据库进入索引,则在这一对话框中的主关键字栏选择指定的关键字和其它索引字段,否则单击“下一步”即可。

---- 步骤 4 - 完成

---- 单击“下一步”完成对此数据库表或自由表的创建 *** 作,并保存文件。

---- 2、创建 *** 作数据的表单

---- 在Visual foxpro 中,通常使用表单向导创建表单的初始模型,然后使用表单设计器来修改初始模型。

---- 向导步骤

---- 步骤 1 - 字段选取

---- (1)、 从“工具”菜单指向“向导”子菜单,然后选择“表单”命令,d出“向导选取”对话框。

---- (2)、单击“表单向导”,然后单击“确定”按钮,d出“表单向导”对话框。

---- (3)、单击“数据库/表”框右侧的三点按钮,从“打开”对话框中找到需要的数据库表或自由表。单击确定,关闭“打开”对话框。

---- (4)、在“可用字段”中选择需要使用的字段,并利用右边的四个按钮中的上面两个按钮,可以将它们移到右边的“选定字段”框中。单击“下一步”可以进入下一步。

---- 步骤 2 - 选择表单样式

---- (5)、从样式框中选择一种表单式样(如浮雕式),并在“按钮类型”列表中选择任何一种按钮类型,并单击“下一步”。进入步骤 3。

---- 步骤 3 - 排序记录

以上就是关于EXCEL如何将1个工作表按条件分割成多个工作表全部的内容,包括:EXCEL如何将1个工作表按条件分割成多个工作表、SQL Server中表格水平拆分的问题、分库分表为什么分表是分库倍数关系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9765307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存