/ / बग फिक्सिंग: एक्सेल 2016 वीबीए में कॉपी की गई छवियां रिक्त छवियों के रूप में दिखाई देती हैं - एक्सेल, छवि, वीबीए

बग फिक्सिंग: एक्सेल 2016 वीबीए में कॉपी की गई छवियां रिक्त छवियों के रूप में दिखाई देती हैं - एक्सेल, छवि, वीबीए

मैं अपने स्थानीय फ़ाइल में निर्यात करने की कोशिश कर रहा हूँ aएक्सेल रेंज को इमेज (PNG) (इसे नाम दिया गया है: टैब पर "Print_Area" "सारांश" रेंज: P1: 992)। कार्यक्रम अच्छी तरह से चलता है, हालांकि जब मैं फ़ाइल खोलता हूं तो सभी कल्पनाएं खाली होती हैं यहाँ कोडिंग है जो मैं उपयोग कर रहा हूँ:

Sub _Daily_Mail()

Dim Rango7 As Range
Dim Archivo As String
Dim Imagen As Chart
Dim Result As Boolean

Set Rango7 = Sheets("Summary").Range("P2:AI92")   " Summary
Sheets("Summary").Select

With Rango7
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set Imagen = Rango7.Parent.ChartObjects.Add(33, 39, .Width, .Height).Chart
End With

Imagen.Paste
Imagen.ChartArea.Border.LineStyle = 0
Imagen.ChartArea.Width = Imagen.ChartArea.Width * 3
Imagen.ChartArea.Height = Imagen.ChartArea.Height * 3

Imagen.export "C:UsersmelyDocumentsImagenes_POSInforme1.png", filtername:="PNG"
Imagen.Parent.Delete
Set Imagen = Nothing

जब मैं फ़ाइल को खोलता हूँ

उत्तर:

उत्तर № 1 के लिए 1

Excel 2016 में आपको उपयोग करने की आवश्यकता है। पेस्ट ऑपरेशन से पहले कमांड को सक्रिय करें। उदाहरण:

Set rng = Range("A1:C1")

With rng
.CopyPicture xlPrinter, xlPicture

Set oChart = ActiveSheet.ChartObjects.Add(.Left, .Top, 1920, 1080)

oChart.Activate

With oChart.Chart
.ChartArea.Border.LineStyle = 0
.Paste
.Export Filename:="C:File.jpg", Filtername:="jpg"
.Parent.Delete
End With
End With

जवाब के लिए 0 № 2

मैं कार्यालय 2016 के साथ इसी मुद्दे पर चल रहा हूं। यह एक टाइमिंग मुद्दा प्रतीत होता है। चार्ट ऑब्जेक्ट बनाते समय और उसे पेस्ट करने में सक्षम होने के नाते। यदि मैं कोड के माध्यम से कदम रखता हूं तो यह अपेक्षित रूप से काम करता है और मेरी छवि उत्पन्न करता है।

मैं एक तय के साथ आया था जो काम करता है: किसी कारण से पेस्ट को कॉल करने से पहले चार्ट के मूल आकार को चुनने से समस्या ठीक हो जाती है।

Function CopyRangeToPNG(ByRef rngImage As Range) As String
Dim vFilePath As Variant

rngImage.CopyPicture Appearance:=xlScreen, Format:=xlPicture

With rngImage.Parent.ChartObjects.Add( _
Left:=rngImage.Left, Top:=rngImage.Top, _
Width:=rngImage.Width + 2, Height:=rngImage.Height + 2)

With .Chart
.Parent.Select
.ChartArea.Format.Line.Visible = msoFalse
.Paste
With .Pictures(1)
.Left = .Left + 2
.Top = .Top + 2
End With
" export
.Export CStr(ThisWorkbook.Path & "ImageName.PNG")
End With
.Delete
End With
CopyRangeToPNG = ThisWorkbook.Path & "ImageName.PNG"

End Function