简单的修复特殊的粘贴excel vba请

第一行代码工作正常,第二个错误与语法错误。 不知道有什么问题呢? 我希望它做第一行相同的东西,除了粘贴值只

ThisWorkbook.Sheets(1).Range(Range("A4"), Range("A4").End(xlDown)).Copy .Sheets(1).Range("A1") ThisWorkbook.Sheets(1).Range(Range("G4"), Range("G4").End(xlDown)).Copy .Sheets(1).Range("B1").PasteSpecial xlPasteValues 

编辑 – 完整的代码

  Private Sub CommandButton1_Click() With Workbooks.Add ThisWorkbook.Sheets(1).Range(Range("A4"), Range("A4").End(xlDown)).Copy .Sheets(1).Range("A1") ThisWorkbook.Sheets(1).Range(Range("G4"), Range("G4").End(xlDown)).Copy .Sheets(1).Range("B1").PasteSpecial xlPasteValues Application.DisplayAlerts = False .SaveAs "C:\Users\my username\Desktop\Macro Demo\output.xlsx" Application.DisplayAlerts = True .Close End With End Sub 

Range("A4")Range("A4").End(xlDown)可能不属于ThisWorkbook.Sheets(1) ,您不能使用另一个工作表中的单元格定义范围。

 Private Sub CommandButton1_Click() Dim nwb As Workbook Set nwb = Workbooks.Add With ThisWorkbook.Sheets(1) .Range(.Range("A4"), .Range("A4").End(xlDown)).Copy _ Destination:=nwb.Sheets(1).Range("A1") With .Range(.Range("G4"), .Range("G4").End(xlDown)) nwb.Sheets(1).Range("B1").Resize(.Rows.Count, 1) = .Value End With End With With nwb Application.DisplayAlerts = False .SaveAs "C:\Users\my username\Desktop\Macro Demo\output.xlsx" Application.DisplayAlerts = True .Close End With End Sub