Копирование формы Excel в высоком разрешении - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть объект в Excel, который я хотел бы вставить как рисунок в другую вкладку.Объект содержит различные имена с очень маленьким размером шрифта (размер шрифта 2).

Ниже приведен фрагмент кода, отвечающий за копирование / вставку изображения объекта. На данный момент он может только вставить изображениес расплывчатым и нечитаемым текстом.Однако, когда я увеличиваю исходную форму, текст выглядит хорошо.Мне нужно изображение с достаточно высоким разрешением, чтобы его можно было прочитать при увеличении 326%.

Код:

  Dim strMap As String
 'Creating a new image
     strMap = "mapGroup3" 'Name of an object
     Sheets("Maps (Prov)").Select
     ActiveSheet.Shapes(strMap).Copy
     Sheets("Image").Select
     Range("a1").Select
     ActiveSheet.Pictures.Paste.Select
     'Application.ScreenUpdating = True

Я пытался использовать .PasteSpecial, чтобы указать формат, но в итоге получилследующая ошибка:

 Run-time error '438':
 Object does not support this property or method

Код вышеуказанной ошибки:

 'Creating a new image
 strMap = "mapGroup3"
 Sheets("Maps (Prov)").Select
 ActiveSheet.Shapes(strMap).Copy
 Sheets("Image").Select
 Range("a1").Select
 ActiveSheet.Pictures.PasteSpecial _
 Format:=3, Link:=False, DisplayAsIcon:=False

1 Ответ

0 голосов
/ 21 декабря 2018

Вставить как изображение или изображение всегда приводит только к вставке видимых пикселей.Таким образом, качество является оптимальным для видимого размера.

Если вам нужно скопировать точное качество, как оно есть в исходном тексте, то вам не следует использовать вставку как, а только копирование / вставку из буфера обмена:

Worksheets("Maps (Prov)").Shapes("mapGroup3").Copy
Worksheets("Image").Paste Destination:=Worksheets("Image").Range("D4")

Конечно, это вставляет тот же тип объекта, что и в источнике.Если вам действительно нужно изменить тип объекта, например, скопировать диапазон ячеек и вставить его как изображение (изображение), то нет другого способа, кроме как сделать исходный код достаточно большим перед копированием.Чем больше будет источник, тем больше пикселей будет вставлено позже, тем лучше будет качество.

К сожалению, это не так просто, как кажется.Например, если кто-то хочет скопировать диапазон ячеек и вставить его как изображение (изображение) в высоком качестве, то перед копированием необходимо увеличить все объекты в диапазоне ячеек.Это высота строки, ширина столбца, размер шрифта .... Затем наоборот после копирования.И сгруппированные фигуры должны быть сначала разгруппированы, затем перед копированием изменили размеры всех отдельных членов группы.Затем наоборот после копирования.

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