标题:[求助]VFP 如何 调用VBA 中的SORT
只看楼主
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
结帖率:0
已结贴  问题点数: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
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:10 
回复 楼主 xuxinxu
我只是用vfp编点程序,计算一些数据,从来也没有往其他方面考虑过。

素数问题的解决是我学习编程永恒的动力。
2021-11-07 10:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507422-1-1.html




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

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