Excel 在“中粘贴特殊(值)”;如果代码为“则复制”;

Excel 在“中粘贴特殊(值)”;如果代码为“则复制”;,excel,excel-2010,vba,Excel,Excel 2010,Vba,我有一个复制if例程,在这里我很难找到如何只粘贴值。有人能帮忙吗 我的日常工作如下: Sub CopyRowsAcross() Dim i As Integer Dim ws1 As Worksheet: Set ws1 = Workbooks("Bok2.xlsx").Sheets("Ark1") Dim ws2 As Worksheet: Set ws2 = Workbooks("Bok2.xlsx").Sheets("Ark2") Dim ws3 As Worksheet: Set

我有一个复制if例程,在这里我很难找到如何只粘贴值。有人能帮忙吗

我的日常工作如下:

Sub CopyRowsAcross()

Dim i As Integer

Dim ws1 As Worksheet: Set ws1 = Workbooks("Bok2.xlsx").Sheets("Ark1")

Dim ws2 As Worksheet: Set ws2 = Workbooks("Bok2.xlsx").Sheets("Ark2")

Dim ws3 As Worksheet: Set ws3 = ThisWorkbook.Sheets("Ark1")



For i = 2 To ws1.Range("A100").End(xlUp).Row

If ws1.Cells(i, 1) = "Videreføres" Then ws2.Range("B1:B100")(i).Copy ws3.Range("A1:A100")(ws3.Cells(ws3.Range("A1:A100").Count, 1).End(xlUp).Row + 1)

If ws1.Cells(i, 1) = "Videreføres" Then ws2.Range("C1:C100")(i).Copy ws3.Range("B1:B100")(ws3.Cells(ws3.Range("B1:B100").Count, 1).End(xlUp).Row + 0)

If ws1.Cells(i, 1) = "Videreføres" Then ws2.Range("E1:E100")(i).Copy ws3.Range("C1:C100")(ws3.Cells(ws3.Range("C1:C100").Count, 1).End(xlUp).Row + 0)

Next i

End Sub

您只是将复制的内容粘贴到需要使用
PasteSpecial
功能的位置。试着看看这个:

Sub CopyRowsAcross()
    Dim i As Integer
    Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet

    Set ws1 = Workbooks("Bok2.xlsx").Sheets("Ark1")
    Set ws2 = Workbooks("Bok2.xlsx").Sheets("Ark2")
    Set ws3 = ThisWorkbook.Sheets("Ark1")

    For i = 2 To ws1.Range("A100").End(xlUp).Row
        If ws1.Cells(i, 1) = "Videreføres" Then
            With ws2
                .Range("B1:B100")(i).Copy
                ws3.Range("A1:A100")(ws3.Cells(ws3.Range("A1:A100").Count, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
                .Range("C1:C100")(i).Copy
                ws3.Range("B1:B100")(ws3.Cells(ws3.Range("B1:B100").Count, 1).End(xlUp).Row + 0).PasteSpecial Paste:=xlPasteValues
                .Range("E1:E100")(i).Copy
                ws3.Range("C1:C100")(ws3.Cells(ws3.Range("C1:C100").Count, 1).End(xlUp).Row + 0).PasteSpecial Paste:=xlPasteValues
            End With
        End If
    Next i
End Sub

您只是将复制的内容粘贴到需要使用
PasteSpecial
功能的位置。试着看看这个:

Sub CopyRowsAcross()
    Dim i As Integer
    Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet

    Set ws1 = Workbooks("Bok2.xlsx").Sheets("Ark1")
    Set ws2 = Workbooks("Bok2.xlsx").Sheets("Ark2")
    Set ws3 = ThisWorkbook.Sheets("Ark1")

    For i = 2 To ws1.Range("A100").End(xlUp).Row
        If ws1.Cells(i, 1) = "Videreføres" Then
            With ws2
                .Range("B1:B100")(i).Copy
                ws3.Range("A1:A100")(ws3.Cells(ws3.Range("A1:A100").Count, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
                .Range("C1:C100")(i).Copy
                ws3.Range("B1:B100")(ws3.Cells(ws3.Range("B1:B100").Count, 1).End(xlUp).Row + 0).PasteSpecial Paste:=xlPasteValues
                .Range("E1:E100")(i).Copy
                ws3.Range("C1:C100")(ws3.Cells(ws3.Range("C1:C100").Count, 1).End(xlUp).Row + 0).PasteSpecial Paste:=xlPasteValues
            End With
        End If
    Next i
End Sub

工作完美!非常感谢你!工作完美!非常感谢你!