要将图表插入到某个指定的单元格(合并的)并且控制它的大小该如何做?我试过用宏生成的图表位置是不固定的。

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xSheet As Excel.Worksheet
        Set xlApp = New Excel.Application
        Set xlBook = xlApp.Workbooks.Open("C:\Book1.xls")
        Set xSheet = xBook.Worksheets(1)    
        xlApp.Visible=True
        xSheet.Range("E10").Select'设置插入位置E列10行
        xSheet.Pictures.Insert("C:\Test.jpg").Select'插入图片    xSheet.Selection.ShapeRange.IncrementLeft -38.25'可以设置图片位置
        xSheet.Selection.ShapeRange.IncrementTop -16.5
        xSheet.Selection.ShapeRange.ScaleWidth 0.77, msoFalse, msoScaleFromTopLeft'设置图片大小
        xSheet.Selection.ShapeRange.ScaleHeight 0.77, msoFalse, msoScaleFromTopLeft
        xlBook.Close False
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
    end sub
      

  2.   

    录制宏(包括移动调整大小)即可 
       Range("A1:B5").Select
        Charts.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B5"), PlotBy:= _
            xlColumns
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
        With ActiveChart
            .HasTitle = False
            .Axes(xlCategory, xlPrimary).HasTitle = False
            .Axes(xlValue, xlPrimary).HasTitle = False
        End With
        ActiveSheet.Shapes("图表 1").IncrementLeft 22.5
        ActiveSheet.Shapes("图表 1").IncrementTop -48.75