跳至主要内容

如何在Excel工作表中创建秒表?

Author: Xiaoyang Last Modified: 2025-05-07

如果你需要在Excel工作表中使用秒表,它可以帮助你跟踪完成任务所需的时间。想象一下,有一个“开始”、“停止”和“重置”按钮来控制秒表,如下图所示。点击“开始”按钮启动计时器,“停止”按钮暂停计时器,“重置”按钮清除时间。在本文中,我们将逐步向你展示如何使用VBA代码在Excel中创建一个简单但功能齐全的秒表。

A screenshot of an Excel worksheet with a stopwatch containing Start, Stop, and Reset buttons

使用VBA代码创建带三个按钮的秒表


 使用VBA代码创建带三个按钮的秒表

要创建带有“开始”、“停止”和“重置”三个按钮的秒表,请按照以下步骤逐一操作。

首先,插入三个命令按钮。

1. 点击“开发工具”>“插入”>“命令按钮”,见截图:

A screenshot showing the Developer tab in Excel with the Insert Command Button option highlighted

2. 然后拖动鼠标绘制一个按钮,插入按钮后,你可以更改按钮的标题,请点击“开发工具”>“属性”,在“属性”对话框中,在“Caption”旁边的文本框中输入新标题“开始”,见截图:

A screenshot showing the Developer tab in Excel with the Properties option highlighted Arrow A screenshot of the Command Button properties dialog in Excel, showing where to set the Caption property to Start

3. 重复上述两个步骤,插入另外两个按钮,并将它们分别命名为“停止”和“重置”,见截图:

A screenshot of three Command Buttons being renamed to 'Start', 'Stop', and 'Reset'

4. 插入按钮后,通过点击“开发工具”>“设计模式”退出设计模式。

其次,创建VBA代码。

5. 接着,右键单击当前工作表标签,选择“查看代码”,在弹出的“Microsoft Visual Basic for Applications”窗口中,请将以下代码复制并粘贴到“Sheet Code”中:

Public StopIt As Boolean
Public ResetIt As Boolean
Public LastTime
Private Sub CommandButton1_Click()
Dim StartTime, FinishTime, TotalTime, PauseTime
StopIt = False
ResetIt = False
If Range("C2") = 0 Then
  StartTime = Timer
  PauseTime = 0
  LastTime = 0
Else
  StartTime = 0
  PauseTime = Timer
End If
StartIt:
  DoEvents
  If StopIt = True Then
    LastTime = TotalTime
    Exit Sub
  Else
    FinishTime = Timer
    TotalTime = FinishTime - StartTime + LastTime - PauseTime
    TTime = TotalTime * 100
    HM = TTime Mod 100
    TTime = TTime \ 100
    hh = TTime \ 3600
    TTime = TTime Mod 3600
    MM = TTime \ 60
    SS = TTime Mod 60
    Range("C2").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(HM, "00")
    If ResetIt = True Then
      Range("C2") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
      LastTime = 0
      PauseTime = 0
      End
    End If
    GoTo StartIt
  End If
End Sub
Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  StopIt = True
End Sub
Private Sub CommandButton3_Click()
  Range("C2").Value = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
  LastTime = 0
  ResetIt = True
End Sub

A screenshot of the VBA editor with code for a stopwatch in Excel

注意:在上面的代码中,“C2”是秒表时间将插入的单元格,而“CommandButton1”、“CommandButton2”、“CommandButton3”是按钮名称,你可以从“名称框”中查看确切的按钮名称,见截图:

A screenshot showing the Name Box in Excel used to verify the names of buttons added to the worksheet

第三,格式化秒表时间单元格。

6. 然后你应该将时间单元格格式化为“文本”格式,你可以根据需要更改单元格大小、字体、字体颜色、背景等,见截图:

A screenshot showing how to format a cell for stopwatch time in Excel, including font and background customization

7. 完成上述步骤后,从现在开始,当你点击“开始”按钮时,计时器将启动,点击“停止”按钮时,计时器将停止。点击“重置”按钮将重置时间,见截图:

A screenshot of a stopwatch running in an Excel worksheet with Start, Stop, and Reset buttons in action


演示:使用VBA代码创建带三个按钮的秒表

 
Kutools for Excel:超过 300 种实用工具触手可及!永久免费享受 AI 功能!立即下载!

最佳办公效率工具

🤖 Kutools AI 助手:基于智能执行生成代码创建自定义公式分析数据并生成图表调用 Kutools 函数等功能,彻底改变数据分析方式…
热门功能查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ...
高级 LOOKUP多条件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 ....
高级下拉列表快速创建下拉列表 | 从属下拉列表 | 多选下拉列表 ....
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域和列 ...
精选功能网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...)...
排名前 15 的工具集12 种文本 工具添加文本删除特定字符等) | 50 多 种图表 类型甘特图等) | 40 多种实用 公式基于生日计算年龄等) | 19 种插入 工具插入二维码根据路径插入图片等) | 12 种转换 工具小写金额转大写汇率转换等) | 7 种合并与分割 工具高级合并行分割单元格等) | 还有更多...

使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...


Office Tab 将标签式界面引入 Office,让您的工作更加轻松

  • 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读
  • 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
  • 将您的生产力提升 50%,每天为您减少数百次鼠标点击!