Этот код работает, как и ожидалось, для копирования ячеек со значением «xxx» в столбце B. Проблема заключается в том, что он копирует все содержимое строки, включая формулы.Я хотел бы только скопировать значения ячеек и форматирование, а не формулы.
Sub CommandButton1_Click()
Dim LastRow As Long
Dim i As Long, j As Long
'Find the last used row in a Column: column A in this example (source sheet = sheet2)
With Worksheets("Sheet2")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
'Message box to confirm how many rows were scanned to ensure all rows were scanned
MsgBox ("Number of rows scanned: " & LastRow)
'First row number where you need to paste values in Sheet3 (destination sheet = sheet3)'
With Worksheets("Sheet3")
j = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
End With
For i = 1 To LastRow
With Worksheets("Sheet2")
If .Cells(i, 2).Value = "xxx" Then
.Rows(i).Copy Destination:=Worksheets("Sheet3").Range("A" & j)
j = j + 1
End If
End With
Next i
End Sub
Я попытался изменить последнюю часть, чтобы она читалась как
.Rows(i).Copy
.Range("A" & j).PasteSpecial xlPasteValuesAndNumberFormats
Однако при попытке вставитьстрок в одном листе (вероятно, потому что он находится в разделе «С»).Я не смог изменить место назначения вставки строк.В идеале я хотел бы, чтобы скопированные строки были вставлены в Sheet3.