我在一个excel中做好了模板,该模板中的图片都是cad连接图片。现在要这样做:制作好一个格式的excel文档保存;构造一个excel文档,在特定的位置用vba在构造文档中贴入模板文档里的某个图。
有谁能帮忙,用什么指令实现?

解决方案 »

  1.   

    PasteSpecial
    var
      FExcel: Variant;
      FWorkbook: Variant;
      FWorksheet: Variant;
    begin
      try
        FExcel := CreateOleObject('excel.application');
      except
        Screen.cursor := crDefault;
        MessageDlg('Could not start Microsoft Excel!', mtError, [mbCancel], 0);
        Exit;
      end;  try
        FWorkBook := FExcel.WorkBooks.Add;
        //FWorkSheet := FWorkBook.WorkSheets.Add;
        FWorkSheet := FWorkBook.WorkSheets[1];    //这里加代码将图片复制到粘贴板
        FWorkSheet.Cells[1, 1].PasteSpecial;//将粘贴板里面的图片粘贴到第一行,第一列
      finally
        FExcel.Visible := True;
      end;
      

  2.   

    procedure Tgcglfrm.pstpic(sheet_s:olevariant); //从图库(excel文件)中复制下料单图示
    var
       i,ys:integer;
       soup,sheet:olevariant;
    begin
         try
            ys:=0;
            soup:=exl.workbooks.open(gcmgfln.Value);
            ys:=1;
         finally
                if ys=1 then
                begin
                try
                   ys:=0;
                   sheet:=soup.sheets[xldfrm.bhc.Text];
                   ys:=1;
                finally
                       if ys=1 then
                       begin
                            sheet.Range[ 'A2:f16' ].Copy;
                            sheet_s.cells[2,1].PasteSpecial;                   end;
                end;
                end;
         end;end;
    sheet是模板文件,sheet_s是目标文件
      

  3.   

    上述代码最主要的是从一个文件中拷出图片后在剪贴板上,但是执行了粘贴剪贴板操作“ sheet_s.cells[2,1].PasteSpecial;”后没有任何反应,但是手动粘贴就能贴上,说明图片已经被复制了,只是粘贴代码是无效的
      

  4.   


    那就是这句没起作用:sheet_s.cells[2,1].PasteSpecial;你试着不要将sheet_s作为参数传递,定义成一个全局变量调用试下。