VBA скопировать определенный диапазон и вставить как изображение - PullRequest
0 голосов
/ 30 апреля 2018

Теперь я могу скопировать все границы с Sheet1 на Sheet2, но моя проблема в том, что я не могу скопировать конкретный диапазон, например, последние 10 столбцов, с заголовком. Например, при вводе нового значения в столбце O он просто скопирует и вставит из F в O заголовки.

Worksheets("sheet1").Select
Set startcell = Range("B2")
startcell.CurrentRegion.CopyPicture xlScreen, xlBitmap
Sheets("Sheet2").Select
Range("B2").Select
ActiveSheet.Paste

example of image

Ответы [ 3 ]

0 голосов
/ 30 апреля 2018

Попробуйте это:

Sub CopyLastTenCols()
    'declaration of variables
    Dim sheet1 As Worksheet, sheet2 As Worksheet, lastCol As Long
    Set sheet1 = Worksheets("Sheet1")
    Set sheet2 = Worksheets("Sheet2")
    'here we determine last column to copy
    lastCol = sheet1.Cells(2, 2).End(xlToRight).Column
    'here, we union headers with last ten columns, then paste it to range
    'of appropriate size, starting in A1 cell
    Union(sheet1.Range("B2:B5"), sheet1.Range(sheet1.Cells(2, lastCol - 9), sheet1.Cells(5, lastCol))).Copy sheet2.Range("A1:K4")
End Sub
0 голосов
/ 30 апреля 2018

Вы можете быть после этого

Sub main()
    With Worksheets("Sheet1").Range("B2").CurrentRegion
        If .Columns.Count > 11 Then .Columns(2).Resize(.Columns.Count - 11).EntireColumn.Hidden = True
        .CopyPicture xlScreen, xlBitmap
        Sheets("Sheet2").Range("B2").PasteSpecial
        .EntireColumn.Hidden = False
    End With
End Sub
0 голосов
/ 30 апреля 2018

Предполагая, что вы можете выполнить эту задачу вручную (без VBA), и теперь вы хотите ее автоматизировать:

Используйте Macro Recorder до , чтобы записать шаги , которые вы выполняете, чтобы выполнить это вручную, затем Редактировать макрос для просмотра кода VBA, удаления любых посторонних разделов, и вы останетесь с кодом, который вы ищете.

Этот процесс можно использовать для любой задачи, которую вы знаете, как выполнять встроенные функции вручную (с помощью Excel), но хотите автоматизировать ее.

Вот так я узнал первую половину того, что я знаю о VBA сегодня. Это хороший "читерский" способ начать работу в VBA.


Дополнительная информация:

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