Дублирование листа Excel в виде значений / изображений без ссылок на другой лист - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь создать макрос, который дублирует и переименовывает панель мониторинга, но не содержит ссылок на другие таблицы. Так что в основном мне нужно вставить диаграммы в виде «картинок» и ячейки в качестве значений.

До сих пор я закончил дублирование, но оно по-прежнему ссылается на другие рабочие листы и, следовательно, изменяется соответственно на исходную панель инструментов.

Вот мой код:

Sub CopySheet()
  Dim i As Integer, x As Integer
  Dim shtname As String

  i = Application.InputBox("How many copies of this dashboard do you need?", "Copy sheet", Type:=1)
  For x = 0 To i - 1
     Worksheets("Dashboard").Copy After:=Sheets(Sheets.Count)
     shtname = InputBox("What do you want to name your new dashboard?")
     ActiveSheet.Name = shtname
 Next x
 End Sub

1 Ответ

0 голосов
/ 19 ноября 2018

если я понял ваш вопрос, вы можете попробовать этот пример кода, где вы получите изображение как изображение и значение без формулы:

 sub test()
    Dim sPath As String, sFile As String
    Dim wb As Workbook

    sPath = "yourPath\"
    sFile = sPath & "yuorFile.xlsx"

    Set wb = Workbooks.Open(sFile)

    Range("A1:B8").Select ' select my value range
    Selection.Copy 'copy it
    Windows("NameFileDestination").Activate 'destination copy value
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Windows("yuorFile.xlsx").Activate 'active source file where there is the chart
    ActiveSheet.ChartObjects("Graphic name").Activate
    Application.CutCopyMode = False
    ActiveChart.ChartArea.Copy ' copy chart like image 
    Windows("NameFileDestination").Activate
    Range("D2").Select
    'below there is in italian immagine change in image
    ActiveSheet.PasteSpecial Format:="Immagine (PNG)", Link:=False, _
        DisplayAsIcon:=False
    ActiveWorkbook.Save
    wb.Close
end sub

Надеюсь, это поможет

...