我正在尝试创建一个时间跟踪器,用于跟踪任何给定任务的关联时间。我想设置它,以便开始和停止时间的按钮在第一张纸上,生成的实际数据在下一张纸上。我的代码有效,但它只是将数据放在与按钮相同的工作表中。这就是我所拥有的:
Sub StartBooking()
Dim lr As Long
lr = Range("a" & Rows.Count).End(xlUp).Row
Range("a" & lr + 1).Formula = "=now()"
Range("b" & lr + 1) = "Booking"
Range("c" & lr + 1) = "Start"
Range("a" & lr + 1).Select
Selection.Copy
Range("d" & lr + 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End Sub
我知道这非常简单,所以让我添加免责声明。任何有关excel vba的知识都是完全自学的。我是编码的新手(这是我的第一个项目)并且发现它非常有趣,但我已经超越了我的头脑。请帮忙!
答案 0 :(得分:0)
默认情况下,数据会放在ActiveSheet
上。您需要显式调用要将数据放入的工作表。您可以通过调用工作表的特定名称或工作表的索引位置来完成此操作。索引位置是纸张当前相对于其他纸张的位置。
Sub StartBooking()
Dim lr As Long
lr = Range("a" & Rows.Count).End(xlUp).Row
Sheets(2).Range("a" & lr + 1).Formula = "=now()"
Sheets(2).Range("b" & lr + 1) = "Booking"
Sheets(2).Range("c" & lr + 1) = "Start"
Sheets(2).Range("a" & lr + 1).Select
Selection.Copy
Sheets(2).Range("d" & lr + 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End Sub
您还可以使用类似Sheets("DataSheet")