2023年3月19日 星期日

每隔10秒钟紀錄Excel巨集 20230319

**可用來記錄 元大DDE RTD盤中資料**

**CHAT GPT寫的**

每隔10秒钟从工作表A的单元格A1到J1中抓取数据并记录到工作表B的Excel巨集,并且包含了启动和停止控制的代码:

------------------------

Dim IsRecording As Boolean '记录是否正在进行中的标志


Sub StartRecording()

    IsRecording = True '将记录标志设置为True

    RecordEvery10Seconds '调用记录数据的子过程

End Sub


Sub StopRecording()

    IsRecording = False '将记录标志设置为False

End Sub


Sub RecordEvery10Seconds()

    If IsRecording Then '仅当记录标志为True时才进行记录

        Dim LastRow As Long

        Dim NextRow As Long

        Dim DataValue As Variant

        

        '找到最后一行

        LastRow = Sheets("B").Cells(Rows.Count, "A").End(xlUp).Row

        

        '确定下一行

        NextRow = LastRow + 1

        

        '获取当前时间

        Dim currentTime As Date

        currentTime = Now()

        

        '记录时间戳和数据

        Sheets("B").Cells(NextRow, 1) = currentTime

        For i = 1 To 10

            DataValue = Sheets("A").Cells(1, i).Value

            Sheets("B").Cells(NextRow, i + 1) = DataValue

        Next i

        

        '设置下一次运行时间

        Application.OnTime Now + TimeValue("00:00:10"), "RecordEvery10Seconds"

    End If

End Sub

---------------------------------

这个巨集会在工作表B中,在最后一行下方记录一个时间戳和从工作表A中获取到的数据。它还包含了一个名为StartRecording和StopRecording的过程,可以用来控制记录过程的启动和停止。要使用这个巨集,您可以打开VBA编辑器,将这些代码复制粘贴到一个新的模块中,然后在Excel中创建两个按钮,并将它们与StartRecording和StopRecording过程相关联。

-----------------------

若您需要在Excel工作表上添加按钮,然后将它们与巨集相关联,可以按照以下步骤进行操作:

在Excel工作表中,打开“开发人员”选项卡。如果您的Excel版本没有该选项卡,请转到文件->选项->自定义功能区,然后勾选“开发人员”复选框。

在“开发人员”选项卡中,单击“插入”下拉菜单,然后在“表单控件”下选择一个按钮控件(一般为圆形按钮)。

在工作表上单击并拖动鼠标,绘制按钮的大小和形状。

在“开发人员”选项卡中,单击“视图代码”按钮,打开Visual Basic编辑器。

右键单击按钮控件,选择“查看代码”。

在代码窗口中,输入以下代码来调用巨集:

-------------------------

Private Sub CommandButton1_Click()

    Call YourMacroNameHere

End Sub

------------------------------------

其中,“YourMacroNameHere”应替换为您要调用的巨集的名称。

按Ctrl+S保存代码。

在Excel工作表中单击按钮,即可调用相关的巨集。

请注意,按钮的名称和标签可以更改,而且您可以将多个按钮添加到同一工作表中,并使用不同的代码将它们与不同的巨集相关联。

沒有留言: