VBA代码 – 保留格式化数据复制到不同的工作表

作为Excel中的VBA的新用户,我正在尝试完成以下操作:
1)检查一个名为“索引”的工作表中的一列中的多行,作为条件(我的条件是在J列的单元格中查找字母Y)
2)将满足条件的每行中的选定列复制到VBA代码中编程的另一个表格,例如“Sheet2”
3)保留被复制的单元格的格式,特别是公式和粗体字体。

我之前在VBA代码中问过一个问题,将符合条件的行中的选定列复制到另一个表中 ,并被ATl LED友好地给出以下代码,它工作并复制值而不是格式(我忘了在我的问题中包括这个)

我试验了代码并调整了IF语句中的.FormulaR1C1值。 公式被复制,并在工作表复制,即工作表2,但我不能让格式工作。

我错过了什么?

Sub try3() Dim i, x As Long Dim Y as String Dim ws1 As Worksheet: Set ws1 = ActiveWorkbook.Sheets("Index") Dim ws2 As Worksheet: Set ws2 = ActiveWorkbook.Sheets("Sheet2") x = 5 Y = "Y" For i = 2 To 500: If ws1.Cells(i, 10) = Y Then Range(ws2.Cells(x, 1), ws2.Cells(x, 7)).Value = Range(ws1.Cells(i, 3), ws1.Cells(i, 9)).Value x = x + 1 End If Next i End Sub 

谢谢,JohnM

放置以下代码行:

 Range(ws1.Cells(i, 3), ws1.Cells(i, 9)).Copy Range(ws2.Cells(x, 1), ws2.Cells(x, 7)) 

而不是你的路线:

 Range(ws2.Cells(x, 1), ws2.Cells(x, 7)).Value = Range(ws1.Cells(i, 3), ws1.Cells(i, 9)).Value 

或者,如果在ws1表单中是任何您不想复制的公式(但是值),则保持两个顺序相同。