如何制作一个将信息放在不同工作表中的按钮?

时间:2015-12-13 00:24:27

标签: excel excel-vba vba

我正在尝试创建一个时间跟踪器,用于跟踪任何给定任务的关联时间。我想设置它,以便开始和停止时间的按钮在第一张纸上,生成的实际数据在下一张纸上。我的代码有效,但它只是将数据放在与按钮相同的工作表中。这就是我所拥有的:

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的知识都是完全自学的。我是编码的新手(这是我的第一个项目)并且发现它非常有趣,但我已经超越了我的头脑。请帮忙!

1 个答案:

答案 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")

的名称来呼叫表格