循环复制粘贴和特殊粘贴在不同的工作表中

时间:2019-12-05 08:20:22

标签: excel vba

我是vba的新手,我试图不使用'Select',但我不知道如何在没有它的情况下执行代码。我有三张纸(数据纸,发生器纸和图片纸)。我需要遍历数据表并将一个单元格/值复制到生成器表中的一个单元格。从这里复制一个范围,然后将特殊的图片作为图片粘贴到图片表中(带有名称,宽度和OnAction)-然后进行下一个循环。 我尝试使用命名工作表在此链接(VBA Copy paste columns in different sheet)中进行操作。问题是特殊的粘贴-在这里,如果不选择图片和单元格,就无法使它起作用:-(

For y = 1 To 1
For x = 1 To lastrow
    If Cells(x, y).Value >= 0 Then

        IDnr = wsDAT.Cells(x, y).Value
        wsDAT.Cells(x, y).Copy
            række = wsDAT.Cells(x, y).Row + 3
            'Sheets("Listegenerator").Select
            ' Sætter IDnr
            'Range("A1").Value = IDnr
            wsGEN.Range("A1").Value = IDnr

            ' Justerer højden for problemtype
            wsGEN.Range("H10").Rows.AutoFit
            rowH = wsGEN.Range("H10").RowHeight

            If rowH > 30 Then
                wsGEN.Range("A1:A2").RowHeight = rowH / 2
                Else: wsGEN.Range("A1:A2").RowHeight = 15
            End If

            ' Kopierer område
            wsGEN.Range("A1:E2").Copy
            ' Indsætter som billede
            Sheets("Indholdsfortegnelse").Select
            Cells(række, y).Select
            ' Billedenavn = IDnr
            With ActiveSheet.Pictures.Paste
                .Name = IDnr
                .ShapeRange.Width = 425
                .Application.CutCopyMode = False
                ' Tildeler makro
                .OnAction = "Rediger_side"
            End With

            ' Indsætter link
            wsPIC.Hyperlinks.Add Anchor:=Selection, Address:= _
                "X:\Globale Dokumenter\Arbejdsmiljø\APV'er\" & IDnr & _
                ".pdf", TextToDisplay:="Vis APV nr. " & IDnr


        'Sheets("Filtreret_data").Select
        'Cells(x + 1, y).Select

    End If
Next x
Next y

1 个答案:

答案 0 :(得分:0)

您执行 Worksheets.Select Range.Select ,然后将所选内容称为 ActiveSheet ActiveCell

您可以使用 worksheets(1) worksheets(“ sheet name”)直接直接选择这些相同的对象 > range(“ A5”) cells(1,5)

使用范围对象(单元格)时,至关重要的是要声明单元格位于哪个工作表中: ThisWorkbook.Worksheets(1).Range(“ A5”)。。 >

代码究竟在哪里工作?


评论后编辑:

 wsGEN.Range("A1:E2").CopyPicture
 With ActiveSheet.Pictures.Paste
            .Name = IDnr
            .ShapeRange.Width = 425
            .Application.CutCopyMode = False
            ' Tildeler makro
            .OnAction = "Rediger_side"
 End With

我希望它能起作用。对不起,我没有注意到您要粘贴图片。