将值复制到其他工作簿

时间:2020-08-07 21:20:51

标签: excel vba

我想更新此代码,以便将值复制为csv格式的新工作簿,而不是同一工作簿上的sheet2。谢谢

Option Explicit
Dim TimeToRun
Sub chkTimer()
Application.DisplayAlerts = False
TimeToRun = Now + TimeValue("00:00:10")
Application.OnTime TimeToRun, "runMacro"
Application.DisplayAlerts = True
End Sub
Sub runMacro()
Calculate
Sheet1.Range("A1:D12").Copy
Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
chkTimer
End Sub
Sub stopMacro()
On Error Resume Next
Application.OnTime TimeToRun, "runMacro", , False
End Sub

2 个答案:

答案 0 :(得分:0)

这是创建新工作簿并将您的范围转移到新工作簿中的Sheet1的基本代码,无需复制/粘贴。它将使用.xlsx将新工作簿作为Thisworkbook.Path文件保存到宏启用工作簿所在的文件夹中。然后将新工作簿命名为“ Test”,根据需要更改名称。代码中提供了注释。

替换这两行...

Sheet1.Range("A1:D12").Copy
Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues

有...

Dim newWB As Workbook: Set newWB = Workbooks.Add 'create new workbook

    With newWB
        'You Don't need to Copy/Paste, use the equals method to get the values
        .Sheets(1).Range("A1:D12").Value = ThisWorkbook.Sheets("Sheet1").Range("A1:D12").Value
        'Save the new workbook to the same folder ThisWorkbook is located
        .SaveAs Filename:=ThisWorkbook.Path & "\" & "Test" & ".xlsx", FileFormat:=51
    End With

答案 1 :(得分:0)

谢谢,这既简单又出色。但是,有一个问题,当用新代码替换时,它试图每10秒保存一次新的测试工作簿,而不是附加一张工作表。另外,我们可以创建.csv格式的目标工作簿吗?感谢您的帮助。

相关问题