【发布时间】:2025-12-11 12:40:02
【问题描述】:
此代码按预期工作,可复制 B 列中给定值为“xxx”的单元格。 问题是它复制了整个行的内容,包括公式。我只想复制单元格值和格式,而不是公式。
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
但是,这会尝试将行粘贴到同一个工作表中(可能是因为它位于“With”下)。我无法更改粘贴行的目的地。理想情况下,我希望将复制的行粘贴到 Sheet3 中。
【问题讨论】: