请教PB OLE excel 排序的语法,非常感谢

liuchaobin 2014-06-09 06:27:57
请教PB OLE excel 排序的语法,非常感谢
...全文
272 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchaobin 2014-06-15
  • 打赏
  • 举报
回复
谢谢xia老师多次指导,pb中使用您c#代码可行,非常感谢
A啦Dbit 2014-06-14
  • 打赏
  • 举报
回复
以上代码可以直接执行VBA代码 以下为PB示例代码,range需要自定义,
	lobj_sheet=iobj.application.ActiveWorkbook.Worksheets("Sheet1")
	
	lobj_sheet.Sort.SortFields.Clear()
	lobj_sheet.Sort.SortFields.Add(lobj_sheet.Range("A:A") )
	lobj_sheet.Sort.SetRange(lobj_sheet.Range("A1:C12") )
	lobj_sheet.Sort.Header=1 //xlGuess
	lobj_sheet.Sort.MatchCase=false 
	lobj_sheet.Sort.Orientation=1 //xlTopToBottom
	lobj_sheet.Sort.SortMethod=1 //xlPinYin
	lobj_sheet.Sort.Apply()
A啦Dbit 2014-06-13
  • 打赏
  • 举报
回复
可以参考 oModule = iobj.Application.ActiveWorkbook.VBProject.VBComponents.Add(1) oModule.CodeModule.AddFromString(strCode) iobj.Application.Run (as_subname)
liuchaobin 2014-06-13
  • 打赏
  • 举报
回复
谢谢,vb的语法我知道,我想请教的是pb的ole排序的语法,谢谢
A啦Dbit 2014-06-12
  • 打赏
  • 举报
回复
//xlAscending=1 //按升序对指定字段排序。这是默认值。 //xlGuess=0 //Excel 确定是否有标题,如果有,是否是一个。 //xlTopToBottom=1 //从上到下 //xlPinYin=1 //按字符的汉语拼音顺序排序。这是默认值。 //xlSortNormal=0 //默认值。分别对数字和文本数据进行排序。 这样楼主应该就会翻译了吧
引用 2 楼 lzp_lrp 的回复:
EXCEL VBA 排序 Sub 排序() Selection.Sort Key1:=Range("e4"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=3, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub 解析: Sub 排序() Selection.Sort Key1:=Range("e4"), 按哪一列进行排序 Order1:=xlAscending, Header:=xlGuess, OrderCustom:=3, 如果对标题不进行排序,那么从第几行开始排序 MatchCase:=False, 不考虑大小写 Orientation:=xlTopToBottom, 从头到尾 SortMethod :=xlPinYin, 按拼音排序 DataOption1:=xlSortNormal End Sub
A啦Dbit 2014-06-12
  • 打赏
  • 举报
回复
//xlAscending=1 //按升序对指定字段排序。这是默认值。 //xlGuess=0 //Excel 确定是否有标题,如果有,是否是一个。 //xlTopToBottom=1 //从上到下 //xlPinYin=1 //按字符的汉语拼音顺序排序。这是默认值。 //xlSortNormal=0 //默认值。分别对数字和文本数据进行排序。 这样楼主应该就会翻译了吧
liuchaobin 2014-06-12
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/liuchaobin/7472453 这是一个pb8.01尝试做的一个拆分电子表的小应该(带有源码)不导入纯ole方式可以基本完整的保留原电子表的内容和格式,但根据字段拆分(这个应该是最有实用价值的部分)前,需要将电子表排序,有些不方便的。 另:如果采用筛选的方式,同样也碰到选择行的问题的语法。同时excel2007筛选时,表大了,也需要先排序的等等,谢谢
liuchaobin 2014-06-12
  • 打赏
  • 举报
回复
谢谢,vba的语法我试过没有问题,pb中的语法尝试多次都不可,请老师帮助指导,谢谢
WorldMobile 2014-06-10
  • 打赏
  • 举报
回复
pb的需要自己根据vba进行改写,或者你在excel录制一段宏(进行排序),然后根据这段宏改写为pb的代码
liuchaobin 2014-06-10
  • 打赏
  • 举报
回复
谢谢您,我的问题是PB的ole操作电子表的语法的问题,这一段套用vba试了多次都报错 请帮助推荐书籍和文档.谢谢
WorldMobile 2014-06-10
  • 打赏
  • 举报
回复
EXCEL VBA 排序 Sub 排序() Selection.Sort Key1:=Range("e4"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=3, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub 解析: Sub 排序() Selection.Sort Key1:=Range("e4"), 按哪一列进行排序 Order1:=xlAscending, Header:=xlGuess, OrderCustom:=3, 如果对标题不进行排序,那么从第几行开始排序 MatchCase:=False, 不考虑大小写 Orientation:=xlTopToBottom, 从头到尾 SortMethod :=xlPinYin, 按拼音排序 DataOption1:=xlSortNormal End Sub
WorldMobile 2014-06-10
  • 打赏
  • 举报
回复
给你段VBA代码你参考一下 Sub Srt() Dim oRs As Object, Arr, k% Arr = [A1].CurrentRegion Set oRs = CreateObject("Adodb.Recordset") oRs.fields.append "A", 200, 32 oRs.fields.append "B", 200, 32 oRs.Open For k = 2 To UBound(Arr, 2) oRs.addnew oRs.fields("A") = Arr(1, k) oRs.fields("B") = Arr(2, k) Next oRs.Sort = "A ASC": Arr = oRs.getrows: Set oRs = Nothing [B1].Resize(2, UBound(Arr, 2) + 1) = Arr End Sub

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧