注册 登录
编程论坛 VFP论坛

求助:VFP操作Excel复制粘贴程序,Excel2010及以下版本没问题,Excel2013及以上版本不行,请各位大虾支招

sonmei 发布于 2022-03-24 14:16, 1551 次点击
本人用VFP写了一段试验命令,用VFP控制Excel复制的粘贴(见附件),在装Excel2007或Excel2010版本的电脑运行均没问题,但装Excel2013及以上版本的电脑运行发现没有粘贴成功(空白),请各位大虾支招,谢谢!
只有本站会员才能查看附件,请 登录
8 回复
#2
scywcxq2022-03-24 15:35
回复 楼主 sonmei
希望能帮到你
只有本站会员才能查看附件,请 登录
#3
sonmei2022-03-24 16:49
回复 2楼 scywcxq
虽然不是我想要的答案但还是谢谢!
#4
csyx2022-03-25 08:22
我只有2010,无法测试,把你的代码简化下试试:
程序代码:
cPath = Sys(5) + Curdir()

cSrc = '001.xlsx'
cTag = '002.xls'
cSrc = ForcePath(cSrc, cPath)
cTag = ForcePath(cTag, cPath)

oExcel = NewObject('Excel.Application')
oExcel.DisplayAlerts = .F.

oBook1 = oExcel.Workbooks.Open(cSrc)
oExcel.SheetsInNewWorkbook = 2
oBook2 = oExcel.Workbooks.Add()

oBook1.Sheets(1).Cells(1,1).Resize(5,3).Copy()
oBook2.Sheets(2).Cells(1,1).PasteSpecial()
oBook2.Sheets(2).Name = '表2'
oBook2.SaveAs(cTag, 39)

oBook2.Close(.f.)
oBook1.Close(.f.)
oExcel.Quit()
#5
sonmei2022-03-25 09:28
回复 4楼 csyx
已在2010和2013版本试过都可以成功粘贴,谢谢!
#6
吹水佬2022-03-25 09:34
直接copy过去就可以了,速度也算够快
oBook1.Sheets(1).Cells(1,1).Resize(5,3).Copy(oBook2.Sheets(2).Cells(1,1))
#7
wengjl2022-03-25 09:35
因为同为 .XLSX ,通常是与版本无关的,因为我没有高版本无法测试。
#8
csyx2022-03-25 11:35
以下是引用吹水佬在2022-3-25 09:34:52的发言:

直接copy过去就可以了,速度也算够快
oBook1.Sheets(1).Cells(1,1).Resize(5,3).Copy(oBook2.Sheets(2).Cells(1,1))

还是先 Copy 后粘贴的好,通常我 PasteSpecial 时会带参数,例如:为了保留目标单元格的格式不变会带上 xlPasteValues
#9
sshhmm2022-05-03 11:19
回复 2楼 scywcxq
真了不起,
1