2017-05-29 4 views
0

Ich verwende John Walkenbach-Code, um ein Diagramm als GIF zu exportieren und dann auf ein Benutzerformular zu laden. Das Problem, das ich habe, ist mit diesem Bit hier Image1.Picture = LoadPicture(Fname). Es lädt das GIF nicht auf das UserForm. Es exportiert das Image in Ordnung Ich kann es im selben Verzeichnis wie meine Excel-Datei sehen.Erstellen eines Diagramms als GIF und Laden in UserForm

Private Sub CommandButton1_Click() 
    Call GetChart 
    Image1.Picture = LoadPicture(Fname) 
    MsgBox "Yep" 
End Sub 

Public Sub GetChart() 
    Set CurrentChart = Sheets("StatsDB").ChartObjects(1).Chart 
    Fname = ThisWorkbook.Path & "/temp.gif" 
    CurrentChart.Export Filename:=Fname, FilterName:="GIF" 
End Sub 

Antwort

1

Sie benötigen einen Wert Fname zuweisen, bevor Sie es verwenden. Es gibt verschiedene Wege, dies zu tun:

1 Just) Zuweisen der Wert in CommandButton1_Click

Private Sub CommandButton1_Click() 
    GetChart 
    Fname = ThisWorkbook.Path & "/temp.gif" 
    Image1.Picture = LoadPicture(Fname) 
    MsgBox "Yep" 
End Sub 

Public Sub GetChart() 
    Set CurrentChart = Sheets("StatsDB").ChartObjects(1).Chart 
    Fname = ThisWorkbook.Path & "/temp.gif" 
    CurrentChart.Export Filename:=Fname, FilterName:="GIF" 
End Sub 

2) Übergeben Sie den Wert in GetChart verwendet zurück als "Rückkehr" Wert:

Private Sub CommandButton1_Click() 
    Fname = GetChart() 
    Image1.Picture = LoadPicture(Fname) 
    MsgBox "Yep" 
End Sub 

Public Function GetChart() As String 
    Set CurrentChart = Sheets("StatsDB").ChartObjects(1).Chart 
    Fname = ThisWorkbook.Path & "/temp.gif" 
    CurrentChart.Export Filename:=Fname, FilterName:="GIF" 
    GetChart = Fname 
End Sub 

3) Herstellung Fname Modulebene im Bereich:

Dim Fname As String 

Private Sub CommandButton1_Click() 
    GetChart 
    Image1.Picture = LoadPicture(Fname) 
    MsgBox "Yep" 
End Sub 

Public Sub GetChart() 
    Set CurrentChart = Sheets("StatsDB").ChartObjects(1).Chart 
    Fname = ThisWorkbook.Path & "/temp.gif" 
    CurrentChart.Export Filename:=Fname, FilterName:="GIF" 
End Sub 

4) die beiden Subroutinen in einer Kombination: würde

Private Sub CommandButton1_Click() 
    Set CurrentChart = Sheets("StatsDB").ChartObjects(1).Chart 
    Fname = ThisWorkbook.Path & "/temp.gif" 
    CurrentChart.Export Filename:=Fname, FilterName:="GIF" 
    Image1.Picture = LoadPicture(Fname) 
    MsgBox "Yep" 
End Sub 

Es gibt viele weitere Möglichkeiten, dies zu tun, aber hoffentlich eine der oben zusagt.

+0

Ich endete mit 1) Aber ich wusste nicht, dass Sie es tun könnten 2). Ich werde es wahrscheinlich stattdessen verwenden und es gibt eine Menge anderer Anwendungen dafür, was nett ist. – Quint

Verwandte Themen