标题:VFP9 无法调用VBA语句 Set ActiveSheet.HPageBreaks(2).Location = Range(" ...
只看楼主
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
结帖率:0
 问题点数:0 回复次数:23 
VFP9 无法调用VBA语句 Set ActiveSheet.HPageBreaks(2).Location = Range("A50")
[目的]
想在固定行前添加分页符

[找到的方法]
方法一: eole.Worksheets("Sheet1").Rows(50).PageBreak = 1

方法二:  eole.ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(50, 1) 此方法没实验,因为结尾部分感觉也出问题

方法三: Set eole.ActiveSheet.HPageBreaks(1).Location = eole.Range("A50")

[问题描述]
法一和法二不能除掉EXCEL系统自带的虚线分页符(此情况出现于自己设置的分页符在一页以外)
法三在VBA中运行完美,定位精确,不出现虚线分页符
但是在VFP中方法三连保存都不允许,更别谈编译了,提示的错误是:“命令中含有不能识别的短语或关键字”

希望哪位同志能帮助一下, VBA 中set 语句如何在VFP中使用,另外,eole.Selection.Delete  -4162 结尾的数字在VFP中也导致无法保存。
搜索更多相关主题的帖子: Set 方法 分页 Location VBA 
2021-10-28 11:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
不好乱猜
最好给出完整可运行测试的示例相关文件
2021-10-28 11:36
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
得分:0 
程序1.zip (1.03 KB)
2021-10-28 12:20
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
得分:0 
继续顶起
2021-10-28 18:34
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
    Set eole.ActiveSheet.HPageBreaks(1).Location = eole.Range("A50")
多个了Set

dBase有人接盘了。
2021-10-28 18:40
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
得分:0 
把set去掉以后,不再报错,但是语句不起作用了。
2021-10-28 20:51
xuxinxu
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-13
得分:0 
没有在指定的行前添加分页符
2021-10-28 20:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
在EXCEL用VBA不用set测试 ActiveSheet.HPageBreaks(1).Location = Range("A50") 也是无作用
按VBA要求给对象赋值要用set,VFP可以用VBS脚本来使用set,不知有无其他更好的办法。
2021-10-28 22:50
sych
Rank: 3Rank: 3
等 级:论坛游侠
威 望:6
帖 子:179
专家分:183
注 册:2019-10-11
得分:0 
#DEFINE xlPageBreakAutomatic    -4105    &&Excel 自动添加分页符。
#DEFINE xlPageBreakManual    -4135    &&手动插入分页符。
#DEFINE xlPageBreakNone    -4142    &&工作表中不插入分页符。
xlApp = GETOBJECT(, "Excel.Application")
If VARTYPE(xlApp)<>"O"
    MESSAGEBOX("没有打开 Excel","温馨提示")
    retu
ENDIF
xlapp.ActiveSheet.ResetAllPageBreaks  &&重置分页符
xlapp.cells(6,2).PageBreak = xlPageBreakNone  &&取消分页符
xlapp.cells(7,1).PageBreak = xlPageBreakManual  &&在你需要的地方插入分页符,如果你设置的分页长度大于页面长度,系统会自动添加一个分页符
2021-10-29 08:59
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
按每页行数添加行分页符

程序代码:
eole = CREATEOBJECT("Excel.application")
eole.displayalerts = 0
eole.SheetsInNewWorkbook = 1
eole.Workbooks.Add
eole.Worksheets("sheet1").Activate
eole.ActiveWindow.WindowState = 2
FOR i=1 TO 100
   FOR j=1 TO 5
       eole.cells[i,j] = i
   ENDFOR
ENDFOR
nRow = 5  &&每页行数
nPageBreaks = INT(eole.CountA(eole.ActiveSheet.Range("A:A"))/nRow)  &&分页符数
FOR i=1 TO nPageBreaks
    eole.Range("A"+TRANSFORM(i*nRow+1)).Select
    eole.ActiveSheet.HPageBreaks.Add(eole.ActiveCell)
ENDFOR
eole.Visible=.T. 
2021-10-29 10:29



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




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

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