ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2790|回复: 2

[求助]word下能否指挥excel排序?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-12-18 23:17 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
整篇文档包括很多篇剪报,每篇剪报由报头和正文组成,每个报头是一个表格,给出了媒体名称、日期等信息。 当时做剪报的时候并不是按日期顺序排列的,现在要按日期来排列,我现在的思路是这样的: 1.把每篇剪报的日期信息传到excel表中生成目录,目录包括两列:序号和日期。并给每篇剪报的开头加个书签,书签名和目录中的序号是一一对应的。 2.在excel中利用它的排序功能给目录排序 3.根据新的目录顺序将剪报一篇一篇的复制到新文档中,每篇剪报的定位由书签来完成。 我原来第一步和第三步都是在word下用vba完成的,而第二步在excel下手工完成。我现在想把它合在一起一步完成,但是我不知道在word下怎样用vba指挥excel完成排序的动作。 Sub list() Dim i As Integer, tc As Integer, BkName As String Dim ra As String, rb As String, bka As String, bkb As String tc = ActiveDocument.Tables.Count Set mydoc = ActiveDocument Set xlobj = CreateObject("excel.application") xlobj.Visible = True Set xlwb = xlobj.workbooks.Add With xlwb.worksheets("sheet1") '生成目录 For i = 1 To tc Set myTable = mydoc.Tables(i) .Cells(i, 1).Value = i .Cells(i, 3).Value = VBA.Format(mydoc.Range(myTable.Cell(3, 3).Range.Start, myTable.Cell(3, 3).Range.End - 1), "yyyy-m-d") '给每个表格加一个书签 BkName = "B" & VBA.Format(i, "000") mydoc.Bookmarks.Add Name:=BkName, Range:=myTable.Range Next i End With Selection.EndKey unit:=wdStory Selection.InsertBreak Type:=wdPageBreak BkName = "B" & VBA.Format(i, "000") mydoc.Bookmarks.Add Name:=BkName '这部分控制excel排序的程序我不知道怎样写 '根据新的目录顺序将剪报一篇一篇的复制到新文档中 Set mydoc2 = Documents.Add For i = 1 To tc ra = xlwb.worksheets("sheet1").Cells(i, 1) bka = "B" & VBA.Format(ra, "000") rb = ra + 1 bkb = "B" & VBA.Format(rb, "000") mydoc.Activate Set myRange = mydoc.Range(mydoc.Bookmarks(bka).Start, mydoc.Bookmarks(bkb).Start - 1) myRange.Select Selection.Copy mydoc2.Activate Selection.Paste mydoc.Activate Next i End Sub 附:下面是我在excel下录制的排序的代码: Sub Macro1() Range("A1:E6").Sort Key1:=Range("C1"), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal End Sub iMojfrht.rar (22.22 KB, 下载次数: 12)
[此贴子已经被作者于2005-12-18 23:22:03编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-18 23:51 | 显示全部楼层
我都晕了!刚想起来word下也有排序的功能,根本用不到excel。

TA的精华主题

TA的得分主题

发表于 2005-12-19 00:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

我对Word跟你一样,还不熟悉,Excel就更加不熟悉了。不过查了Excel VBA的帮助文档,似乎应该用Sort方法,帮助文档的内容如下:

全部显示

Sort 方法

参阅应用于示例特性

对数据透视表、单元格区域或活动区域(如果指定区域仅包含一个单元格)进行排序。

expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

expression 必需。该表达式返回“应用于”列表中的对象之一。

Key1 Variant 类型,可选。第一个排序字段,可为文本(数据透视表字段或区域名)或者为 Range 对象 (例如,“Dept”或 Cells(1, 1))。

Order1 XlSortOrder 类型,可选。在 Key1 中指定的字段或区域的排序顺序。

XlSortOrder 可为以下 XlSortOrder 常量之一。
xlDescendingKey1 按降序排序。
xlAscending 默认值。对 Key1 按升序排序。

Key2 Variant 类型,可选。第二个排序字段,可为文本(数据透视表字段或区域名)或者为 Range 对象。如果省略本参数,则没有第二个排序字段。对数据透视表进行排序时,不能使用本参数。

Type Variant 类型,可选。指定要排序的元素。仅在对数据透视表排序时才使用本参数。

XlSortType 可为以下 XlSortType 常量之一。
xlSortLabels 按标签对数据透视表排序。
xlSortValues 按值对数据透视表排序。

Order2 XlSortOrder 类型,可选。在 Key2 中指定的字段或区域的排序顺序。对数据透视表进行排序时,不能使用本参数。

XlSortOrder 可为以下 XlSortOrder 常量之一。
xlDescendingKey2 按降序排序。
xlAscending 默认值。对 Key2 按升序排序。

Key3 Variant 类型,可选。第三个排序字段,为文本(区域名)或者为 Range 对象。如果省略本参数,则没有第三个排序字段。对数据透视表进行排序时,不能使用本参数。

Order3 XlSortOrder 类型,可选。在 Key3 中指定的字段或区域的排序顺序。对数据透视表进行排序时,不能使用本参数。

XlSortOrder 可为以下 XlSortOrder 常量之一。
xlDescendingKey3 按降序排序。
xlAscending 默认值。对 Key3 按升序排序。

Header XlYesNoGuess 类型,可选。指定第一行是否包含标题。对数据透视表进行排序时,不能使用本参数。

XlYesNoGuess 可为以下 XlYesNoGuess 常量之一。
xlGuess 由 Microsoft Excel 确定是否有标题,如果有,确定标题位于何处。
xlContinuous 默认值。(应对整个区域进行排序)。
xlYes (不应对整个区域进行排序)。

OrderCustom Variant 类型,可选。本参数是从 1 开始的整数,指定了在自定义排序顺序列表中的索引号。如果省略 OrderCustom 参数,则使用常规排序。

MatchCase Variant 类型,可选。如果为 True,则进行区分大小写的排序;如果为 False,则排序时不区分大小写。对数据透视表进行排序时,不能使用本参数。

Orientation XlSortOrientation 类型,可选。排序方向。

XlSortOrientation 可为以下 XlSortOrientation 常量之一。
xlSortRows 默认值。按行排序。
xlSortColumns 按列排序。

SortMethod XlSortMethod 类型,可选。排序类型。对于所选择或安装的不同语言支持(例如:美国英语),以上某些常量可能不可用。

XlSortMethod 可为以下 XlSortMethod 常量之一。
xlStroke 按每个字符的笔划数量排序。
xlPinYin 默认值。按字符的汉语拼音顺序排序。

DataOption1 XlSortDataOption 类型,可选。指定如何对 key 1 中的文本进行排序。对数据透视表进行排序时,不能使用本参数。

XlSortDataOption 可为以下 XlSortDataOption 常量之一。
xlSortTextAsNumbers 将文本作为数字型数据排序。
xlSortNormal 默认值。分别对数字和文本数据进行排序。

DataOption2 XlSortDataOption 类型,可选。指定如何对 key 2 中的文本进行排序。对数据透视表进行排序时,不能使用本参数。

XlSortDataOption 可为以下 XlSortDataOption 常量之一。
xlSortTextAsNumbers 将文本作为数字型数据排序。
xlSortNormal 默认值。分别对数字和文本数据进行排序。

DataOption3 XlSortDataOption 类型,可选。指定如何对 key 3 中的文本进行排序。对数据透视表进行排序时,不能使用本参数。

XlSortDataOption 可为以下 XlSortDataOption 常量之一。
xlSortTextAsNumbers 将文本作为数字型数据排序。
xlSortNormal 默认值。分别对数字和文本数据进行排序。

说明

对于特定的工作表,每次使用本方法时,将保存对 HeaderOrder1Order2Order3OrderCustomOrientation 的设置。如果在下次调用本方法时不指定这些参数的值,则会使用这些保存的值。如果不使用这些保存的值,在每次使用 Sort 方法时请明确设置这些参数的值。

不能转换为数字型数据的文本字符串按常规排序。

注释 如果使用 Sort 方法时没有定义参数,则 Microsoft Excel 会对所选定的要排序的区域按升序排序。

示例

本示例对工作表 Sheet1 上的单元格区域 A1:C20 进行排序,用单元格 A1 作为第一排序关键字,用单元格 B1 作为第二排序关键字。排序是按行以升序进行的,没有标题。本示例假定单元格区域 A1:C20 有数据存在。

Sub SortRange1()
   Worksheets("Sheet1").Range("A1:C20").Sort _
        Key1:=Worksheets("Sheet1").Range("A1"), _
        Key2:=Worksheets("Sheet1").Range("B1")
End Sub
		

本示例对工作表 Sheet1 上包含单元格 A1 的区域(活动区域)进行排序,按第一列中的数据进行排序,并且自动使用标题行(如果存在)。本示例假定活动区域(包含单元格 A1)中有数据存在。Sort 方法将自动确定活动区域。

Sub SortRange2()
   Worksheets("Sheet1").Range("A1").Sort _
        Key1:=Worksheets("Sheet1").Columns("A"), _
        Header:=xlGuess
End Sub
		

  1. &lt;SCRIPT language=JScript src="mk:@msitstore:msohlp11.chm::/html/ofvbanl.js" type=text/javascript&gt;<br><br>&lt;/script&gt;
复制代码

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 02:36 , Processed in 0.036135 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表