var dbim
 dbim:=ExcelApplication1.Selection[0];
dbim.ActiveSheet.pictures.insert('c:\test.jpg');
老是提示錯誤activesheet

解决方案 »

  1.   

    你的dbim变量没有声明类型。
    应该用
    var dbim:数据类型
      

  2.   

    var dbim:olevariant;
    'method'activesheet'not supported by automationobject'
      

  3.   

    TExcelApplication(dbim).ActiveSheet.pictures.insert('c:\test.jpg');
      

  4.   

    li_zhifu(东北人) 大哥哥!!說的好像行不通啊
      

  5.   

    有没有事先创建啊(CreateOleObject),要是没有打开的话,怎么能激活呢。
      

  6.   

    raise by compile?
    raise by run?
      

  7.   

    我開始用粘貼。。但是圖片太大了沒辦法只好改為插入了,但是不知道用什麼代碼來插入圖片我用的代碼都行不通。dbim我定義成olevatiant類型可以縮小圖片但沒辦法插入圖片,明天要交貨了,今天是最後一天。。求各位幫幫忙吧。小女子感激不盡。。
    if  not Query2.FieldByName('bjds12').IsNull then
             begin
             try
             tempstream:=TStringStream.Create(' ');
             TBlobField(Query2.FieldByName('bjds12')).SaveToStream(tempstream);
             tblobfield(query2.FieldByName('bjds12')).SaveToFile('c:\test.jpg');
           //  tempstream.Seek(0,soFromBeginning);
           //  tempstream.Position:=0;
             JpegMap:=TJpegImage.Create;
             jpegmap.LoadFromFile('c:\test.jpg');
              dbimage1.Picture.Graphic:=jpegmap;
         //  image1.Picture.LoadFromFile('c:\test.jpg');       //   deletefile('c:\test.jpg');
         //    jpegmap.LoadFromStream(tempstream);
        
          //   blobstream:=TBlobStream.Create(TBlobField(Query2.FieldByName('bjds12')),bmRead);         //  JpegMap.LoadFromStream(blobstream);      //   dbImage1.Picture.BitMap.Assign(JpegMap);
         
        //     dbimage1.CopyToClipboard;         excelworkSheet1.Range[excelworksheet1.cells.item[b3+9,2],excelworksheet1.Cells.item[b3+9,2]].Select;     
             dbim:=ExcelApplication1.Selection[0];           dbim.activesheet.pictures.insert('c:\test.jpg');         dbim.ShapeRange.ScaleWidth(0.33, msoFalse, msoScaleFromTopLeft);
             dbim.ShapeRange.ScaleHeight(0.48, msoFalse, msoScaleFromTopLeft);            finally
             jpegmap.free;
             tempstream.free;
           end;
      

  8.   

    插入应该不难吧,我以前好象做过!你先去excel录制宏,然后在改呀!
      

  9.   

    我錄了但我用的是控件,和宏有很大的差異。。
    要不就可以插入進去但不知怎麼放小,要不就插入進去圖片太大。
    1。dbim2類型是olevataint
         excelapplication1:=Texcelapplication.Create(application);
       ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
     dbim2:=excelworksheet1.Application;
             dbim2.activesheet.pictures.insert('c:\test.jpg');
    不知怎麼放小。
      

  10.   

    //Unit
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Excel2000, OleServer;type
      TForm1 = class(TForm)
        ExcelApplication1: TExcelApplication;
        ExcelWorksheet1: TExcelWorksheet;
        ExcelWorkbook1: TExcelWorkbook;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}uses jpeg;procedure TForm1.Button1Click(Sender: TObject);
    var dbim2:OLEVariant;
    begin
      ExcelApplication1.Connect;
      ExcelApplication1.Visible[0]:=True;
      ExcelApplication1.Workbooks.Add('',0);
      ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
      ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets[1] as _WorkSheet);
      ExcelWorkSheet1.Activate;
      dbim2:=excelworksheet1.Application;
      dbim2.activesheet.pictures.insert('e:\exchange\1.jpg').select;
      dbim2.selection.shaperange.scalewidth(1.8, 0, 0);//这是放大1.8倍
      dbim2.selection.shaperange.scaleheight(1.8, 0, 0);//1.8当然也可以是0.5
    end;end.//Form
    object Form1: TForm1
      Left = 210
      Top = 114
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Button1: TButton
        Left = 320
        Top = 360
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 0
        OnClick = Button1Click
      end
      object ExcelApplication1: TExcelApplication
        AutoConnect = False
        ConnectKind = ckRunningOrNew
        AutoQuit = False
        Left = 96
        Top = 96
      end
      object ExcelWorksheet1: TExcelWorksheet
        AutoConnect = False
        ConnectKind = ckRunningOrNew
        Left = 160
        Top = 104
      end
      object ExcelWorkbook1: TExcelWorkbook
        AutoConnect = False
        ConnectKind = ckRunningOrNew
        Left = 208
        Top = 112
      end
    end
      

  11.   

    不服都不行我昨天晚上這樣做了兩個小時還不行。。人真的要休息要不就頭大大。現在又可以。謝謝你 li_zhifu(东北人),,,我把什麼都給你了。。