将范围图片粘贴到图表区域以便导出不起作用

时间:2016-05-04 15:52:42

标签: image vba charts

我很难将图片粘贴到我的图表上。我尝试过各种“With TempChrt”组合,让.paste无法正常工作。 如果我可能会绕着肘部解决问题,我愿意接受建议。

基本上我想将具有以下特定大小,背景颜色和值的单元格传输到用户表单,仅供查看之用。也很抱歉,但我无法使用粗体或斜体字体来处理带有问题的代码,但挂起的行是“.Paste”后面的“With TempChrt”。对象'_chart'的方法'粘贴'失败。

Private Sub UserForm_Initialize()
  Dim i As Byte
  Dim rng1 As Range, rng2 As Range
  Dim wkshtDC As Worksheet
  Dim TempChrt As Chart
  Dim TempChrtNm As String

  Set wkshtDC = Worksheets("Data & Calcs")
  wkshtDC.Unprotect "123"
  Set TempChrt = wkshtDC.Shapes.AddChart.Chart
  TempChrtNm = TempChrt.Parent.Name
  With TempChrt.Parent
    .Width = 87.12
    .Height = 285.12
    .Top = wkshtDC.Range("BC28").Top
    .Left = wkshtDC.Range("BC28").Left
  End With
  For i = 1 To 4
    Set rng1 = wkshtDC.Range("BE28").Offset(0, i)
    Set rng2 = wkshtDC.Range("BE46").Offset(0, i)
    If i <> 1 Then
        TempChrt.Shapes.Range(Array("chart")).Delete
    End If
    wkshtDC.Range(rng1.Address, rng2.Address).CopyPicture xlScreen, xlPicture
    With TempChrt
        .Paste
        .Export Filename:="G:\MVOsafe\Ramp-up\misc\TempMatrix" & i & ".bmp"
    End With
    Me.Controls("Frame" & i).Picture = LoadPicture("G:\MVOsafe\Ramp-up\misc\TempMatrix" & i & ".bmp")
  Next i
  TempChrt.Parent.Delete
  wkshtDC.Protect "123"

End Sub 

1 个答案:

答案 0 :(得分:0)

得到了......

With TempChrt

更改为

wkshtDC.Range(rng1.Address, rng2.Address).CopyPicture xlScreen, xlPicture
    wkshtDC.ChartObjects(TempChrtNm).Activate
    With ActiveChart
        .Paste
        .Export Filename:="G:\MVOsafe\Ramp-up\misc\TempMatrix" & i & ".bmp"
    End With

,其中

TempChrtNm = TempChrt.Parent.Name