Копирование / вставка диапазона в проблему с высоким качеством изображения - PullRequest
0 голосов
/ 06 октября 2019

Спасибо за ваше время, и я надеюсь, что кто-то может ответить на эту проблему для меня, я хочу скопировать диапазон, содержащий диаграмму, и вставить его в свою панель, пользователь по имени Патрик был достаточно любезен, чтобы показать мне, как работаетотлично, за исключением того, что на вставляемом изображении видны тени, как на рисунке ниже, и я не знаю, как это исправить, код, который я использую, таков:

    ActiveSheet.Pictures.Delete
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
    Worksheets("Weekly Sorted").Range("N1:AA37").CopyPicture xlScreen, xlBitmap
    Application.ScreenUpdating = False
    Sheets("Dash").Select
    Range("B5").Select
    ActiveSheet.Pictures.Paste.Select

На рисунке 1 показано, как выглядит диаграммакак ... enter image description here

И эта картинка, как она вставляется ... enter image description here

Я не оченьзнакомы с техническими кодами, поэтому простое решение этой проблемы высоко ценится. Я пытался использовать параметры xlprint и xlPicture, но полученное разрешение изображения было ужасным.

Заранее благодарю всех.

РЕДАКТИРОВАТЬ:

Спасибо Тони за помощь, я не былне очень ясно, так как я пытался упростить вещи раньше, мой код выше копирует целый ряд диаграмм, таблиц и другой информации с листа расчета на панель инструментов, в зависимости от того, какая радиокнопка нажата, например, новое изображение ниже, иногдаЕсть более 10 диаграмм, я использую Excel 2007, как вы думаете, я могу использовать ваш код для всего, что мне нужно?

enter image description here

1 Ответ

1 голос
/ 06 октября 2019

Я сделал диаграмму, которая кажется похожей на вашу, исходя из данных, показанных в A2: A9 на листе «1», а затем запустил приведенный ниже код, чтобы получить изображение из диаграммы, наклеенной на листе «2»

Option Explicit
Sub copyChartPicture()
Dim ch As ChartObject
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheets("1")
Set sh2 = Worksheets("2")
For Each ch In sh1.ChartObjects
    ch.CopyPicture
    sh2.Activate
    sh2.Pictures.Paste
Next ch
End Sub

Это выглядит идентично, как это видно на анимированном GIF-изображении, которое показывает, что я шагал по коду (нажмите на него, чтобы получить изображение более высокого качества). Я предлагаю вам повторить то, что я сделал, чтобы подтвердить это для себя, а затем применить к вашей ситуации. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...