当前位置: 代码迷 >> PB >> pb调用VBA函数的参数传递有关问题
  详细解决方案

pb调用VBA函数的参数传递有关问题

热度:23   发布时间:2016-04-29 06:40:31.0
pb调用VBA函数的参数传递问题
拷贝excel表中一块区域到另一个excel文件的一个区域,VBA方法:expression.Copy(Destination),举例是:Worksheets("Sheet1").Range("A1:D4").Copy destination:=Worksheets("Sheet2").Range("E5") 。
在PB脚本中这个参数Worksheets("Sheet2").Range("E5")如何准备给copy函数?
我用这代码拷贝到剪贴板没有问题:xlapp1.ActiveSheet.Range("A1:K15").select()
xlapp1.Selection.copy( )
但这样拷贝不了表格中的图片。所以想换个方法试试



------解决方案--------------------
ExcelServer = CREATE OLEObject
ExcelOK = ExcelServer.ConnectToNewObject( "excel.application" )  
if  excelok  < 0  then 
  
 messagebox("连接excel失败,检查你的系统是否安装了office",string(excelok)) 
 return(-1)

end if
ExcelServer.Workbooks.Open(pathname)
sheetindex=ExcelServer.activesheet.index
columncount=excelserver.sheets(sheetindex).columns.count

//这句可以看出,sheets(sheetindex)是一个对象,后面跟着的是属性.
//所以 Worksheets("Sheet2").Range("E5")不是copy函数的参数
//而是反过来,copy是Worksheets("Sheet2").Range("E5")对象的函数.
//调用的时候应该这样就可以了: excelserver.Worksheets("Sheet2").Range("E5").copy()
  相关解决方案