标题:vfp 控制excel粘贴和清空内容的问题
只看楼主
meboy88
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-5-19
结帖率:100%
已结贴  问题点数:10 回复次数:10 
vfp 控制excel粘贴和清空内容的问题
请教下大家,我使用
oExcel.ActiveSheet.Range("A1:D20").Copy  &&复制表一的内容
 

oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial &&黏贴到表二


但都不成功,请问下上面哪里有问题?,另外请教下,worksheet,清空内容,保留格式,命令应该怎么写
搜索更多相关主题的帖子: excel 
2013-09-04 14:04
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:10 
oExcel.ActiveSheet.Range("A1:D20").Copy  &&复制表一的内容
oExcel.Sheets(2).Select
oExcel.ActiveSheet.Range("A1").PasteSpecial  &&黏贴到表二
oExcel.ActiveSheet.Range("C1:E8").ClearContents &&清除内容保留格式

相互学习,互相交流,共同提高。
2013-09-04 17:29
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:0 
楼主没用过VBA吗?
完整一些的代码:
oExcel= CreateObject("Excel.Application")
oExcel.WorkBooks.Open(GETFILE())
oexcel.visible=.t.
oExcel.ActiveSheet.Range("A1:D20").Copy  &&复制表一的内容
oExcel.Sheets(2).Select
oExcel.ActiveSheet.Range("A1").PasteSpecial  &&黏贴到表二
oExcel.ActiveSheet.Range("C1:E8").ClearContents &&清除内容保留格式
oExcel.ActiveWorkbook.close(.t.)
oExcel.quit

相互学习,互相交流,共同提高。
2013-09-04 21:32
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
程序能运行,但不能粘贴到Sheets2上
2013-09-05 10:59
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:0 
我2楼的代码是回答楼主的问题,后来前后增加了打开、关闭的代码,只是示意性的。下面的代码就基本完整了:
oExcel= CreateObject("Excel.Application")
oExcel.WorkBooks.Open(GETFILE())
oExcel.Sheets(1).Select
*oexcel.visible=.t.
oExcel.ActiveSheet.Range("A1:D20").Copy  &&复制表一的内容
oExcel.Sheets(3).Select
oExcel.ActiveSheet.Range("A1").PasteSpecial  &&黏贴到表二
oExcel.ActiveSheet.Range("C1:E8").ClearContents &&清除内容保留格式
oExcel.ActiveWorkbook.close(.t.)
oExcel.quit

相互学习,互相交流,共同提高。
2013-09-05 11:27
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
1、还是不能粘贴上内容。
2。*oExcel.ActiveSheet.Range("C1:E8").ClearContents &&清除内容保留格式
我把上句注销后C1:E8"内容没有清空反倒把A1:D20"这区间的内空清空了

[ 本帖最后由 sylknb 于 2013-9-5 12:45 编辑 ]
2013-09-05 12:38
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:0 
测试时是粘贴到工作表3,没有改过来,用时根据自己所需要改吧:
    oExcel.Sheets(3).Select
    oExcel.ActiveSheet.Range("A1").PasteSpecial  &&黏贴到表三

相互学习,互相交流,共同提高。
2013-09-05 13:34
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
运行结果如下:



oExcel= CreateObject("Excel.Application")
oExcel.WorkBooks.Open(GETFILE())
oExcel.Sheets(1).Select
*oexcel.visible=.t.
oExcel.ActiveSheet.Range("A1:D20").Copy  &&复制表一的内容
oExcel.Sheets(2).Select
oExcel.ActiveSheet.Range("A1").PasteSpecial  &&黏贴到表二
*oExcel.ActiveSheet.Range("C1:E8").ClearContents &&清除内容保留格式
oExcel.ActiveWorkbook.close(.t.)
oExcel.quit
我是改了2,照片2是sheet2图示,没有内容,也就是说没有粘上,
我把 oExcel.ActiveSheet.Range("C1:E8").ClearContents 加了注销,它到出来了A1:D20区间的清空。
2013-09-05 14:24
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:0 
楼上的问题是Excel两个工作簿位置反了,所以操作反过来了。

相互学习,互相交流,共同提高。
2013-09-05 15:50
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
原来如此,成功了!
2013-09-05 16:25



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




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

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