打开另一个工作簿时选择工作表类失败的方法

问题描述 投票:1回答:2
Sub Copy()

Workbooks("Data.xlsm").Sheets("28May2020").Select

Workbooks("Data.xlsm").Sheets("28May2020").Activate

Dim lastrow As Integer

lastrow = ThisWorkbook.Sheets("COPYHERE").Cells(Rows.Count, 2).End(xlUp).Row

Sheets("COPYHERE").Range("A" & lastrow + 1).Value = Date
Sheets("COPYHERE").Range("B" & lastrow + 1).Value = Time

Range("L43:X93").Copy Worksheets("COPYHERE").Range("A" & lastrow + 2)

Sheets("COPYHERE").Select

Timer

End Sub

Sub Timer()

Application.OnTime Now() + TimeValue("00:00:30"), "Copy"

End Sub
excel vba excel-vba error-handling
2个回答
0
投票

Sheets("COPYHERE").Select之前,放置一行ThisWorkbook.Activate。这将激活运行代码的工作簿。

也可以再看看Sheets("COPYHERE").Range("A" & lastrow + 1).Value = DateSheets("COPYHERE").Range("B" & lastrow + 1).Value = TimeRange("L43:X93").Copy Worksheets("COPYHERE").Range("A" & lastrow + 2)工作表,工作表和范围是指ActiveWorkbook / ActiveSheet。除非您确定要这样做,否则建议您将工作表更改为ThisWorkbook.Sheets,将工作表更改为ThisWorkbook.Worksheet,将范围更改为ThisWorkbook.Sheets(<sheet name>).Range(<address>)


0
投票
Sub Copy()
Application.ScreenUpdating = True

Dim lastrow As Integer
Dim wsName As String
Dim cpName As String

wsName = "28May2020"
cpName = "COPYHERE"
Sheets(wsName).Activate

lastrow = Sheets(cpName).Cells(Rows.Count, 2).End(xlUp).Row

With Sheets(cpName)
    .Range("A" & lastrow + 1).Value = Date
    .Range("B" & lastrow + 1).Value = Time
End With

Range("L43:X93").Copy Worksheets(cpName).Range("A" & lastrow + 2)

Sheets(cpName).Activate

Application.ScreenUpdating = False

End Sub



© www.soinside.com 2019 - 2024. All rights reserved.