| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1565 人关注过本帖, 2 人收藏
标题:[求助]VFP 如何 调用VBA 中的SORT
只看楼主 加入收藏
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
结帖率:0
收藏(2)
已结贴  问题点数:20 回复次数:10 
[求助]VFP 如何 调用VBA 中的SORT
图片附件: 游客没有浏览图片的权限,请 登录注册


这句在VFP中如何实现?以下是我的尝试,但是最后一句出错

程序代码:
*!*    *********************************************************
eole=Createobject('Excel.application')
If Type("eole")#"O"
    Wait Clear
    Messagebox( "访问Excel失败!请检查你的系统是否正确安装 Excel 软件!",48,"系统")
    Return To Master
Endif
eole.Visible=.F.
*eole.Workbooks.Add
eole.Workbooks.Open("C:\Users\Administrator\Desktop\duo\四高一低20211107.xls")
eole.ActiveWindow.WindowState = 2 &&最大化
eole.Worksheets('sheet1').Activate
eole.displayalerts=.F.
*eole.SheetsInNewWorkbook=1 &&设定新工作簿中有几个工作表
eole.ActiveWindow.WindowState = 2 &&最大化


eole.Range("B2:N8").Select  
eole.selection.sort("四高一低",1)     


出现的错误是

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

四高一低20211107.zip (8.21 KB)


[此贴子已经被作者于2021-11-7 08:34编辑过]

搜索更多相关主题的帖子: VBA 调用 SORT VFP Excel 
2021-11-07 08:23
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
收藏
得分:0 

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("N3:N8"), SortOn:=0, Order:=2, DataOption:=0

上面一句在VBA中运行正常
下面这句在VFP中运行出现语法错误

eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("N3:N8"), SortOn:=0, Order:=2, DataOption:=0
下面这句显示“不能识别的命令谓词”
eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add (Key:=Range("N3:N8"), SortOn:=0, Order:=2, DataOption:=0)
真不知道如何调用这些带参数的命令
2021-11-07 09:27
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
试试
eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(eole.Range("N3:N8"), 0, 2, 0)
2021-11-07 09:44
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
收藏
得分:0 
语法验证通过,却没起作用,我再琢磨

程序代码:
eole.Range("B2:N8").Select
eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add (eole.range("N3:N8"),0, 1, 0)
    With eole.ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange (eole.Range("B2:N8"))
        .Header = 1
        .MatchCase = 0
        .Orientation = 1
        .SortMethod = 1
        &&.Apply
    EndWith 


这是录的宏改编的

现在已经找到了没起作用的原因,最后一句 .Apply 被注释了

[此贴子已经被作者于2021-11-7 10:54编辑过]

2021-11-07 09:54
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:10 
回复 楼主 xuxinxu
我只是用vfp编点程序,计算一些数据,从来也没有往其他方面考虑过。

素数问题的解决是我学习编程永恒的动力。
2021-11-07 10:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
用提供数据试了一下,顺序:
rng = eole.Range("A3:N8")
rng.sort(eole.Range("N3:N8"),1)  

[此贴子已经被作者于2021-11-7 10:23编辑过]

2021-11-07 10:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏(1)
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
eole=Createobject('Excel.application')
eole.displayalerts=.F.
eole.Workbooks.Open(cDefPath+"四高一低20211107.xls")
eole.Worksheets('sheet1').Activate
rng = eole.Range("A3:N8")
key = eole.Range("N3:N8")
rng.sort(key,1)  
eole.ActiveWindow.WindowState = 2 &&最大化
eole.Visible=1
2021-11-07 10:30
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
收藏
得分:0 
回复 4楼 xuxinxu
程序代码:
eole.Range("B2:N8").Select
eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add (eole.range("N3:N8"),0, 2, 0)
*eole.ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add (Key:=Range("N3:N8"), SortOn:=0, Order:=2, DataOption:=0) &&(range("B2:N8"),0, 2, 0)
    With eole.ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange (eole.Range("B2:N8"))
        .Header = 1
        .MatchCase = 0
        .Orientation = 1
        .SortMethod = 1
        .Apply
    EndWith 

刚才没起作用是因为 .Apply 因出错被注释了
2021-11-07 10:46
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
收藏
得分:0 
回复 7楼 吹水佬

佩服,精确,简洁,谢谢

[此贴子已经被作者于2021-11-7 11:28编辑过]

2021-11-07 10:49
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
收藏
得分:0 
回复 5楼 独木星空
谦虚了
2021-11-07 12:13
快速回复:[求助]VFP 如何 调用VBA 中的SORT
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063048 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved