gpt4 book ai didi

VBA 每天运行一次宏

转载 作者:行者123 更新时间:2023-12-04 21:17:16 25 4
gpt4 key购买 nike

我需要一些代码来每天只运行一次宏,不管你打开文件多少次宏在哪里。

如果文件没有打开一天它不必运行宏,只需在打开时执行。

我猜它必须有一个“内部”变量或类似的东西,以保留宏今天是否已经运行的信息。

此外,为了让它更难,我想,宏每天都会打开一个不同的工作簿。

有什么想法吗。

我是新手,如果这很清楚,请原谅我。提前致谢。

已编辑:我找到了一些代码 here :

这似乎可以做到,但你必须创建一个额外的工作表,我不想那样做。

这是代码:

Private Sub Workbook_Open()
Dim rngFindTodaysDate As Range
With ThisWorkbook.Worksheets("Status")

On Error GoTo X
Set rngFindTodaysDate = .Range("A1").End(xlDown).Find(Date)
If rngFindTodaysDate Is Nothing Then
.Range("A" & .Range("A" & Rows.Count).End(xlUp).Row + 1) = Date

''''' your Code Here

End If
End With
X:
End Sub

最佳答案

在您的工作簿中使用(命名的)范围,一个单元格,其中最后一次运行宏的时间和日期由宏本身存储:

Sheetx.Range("rLastRun").Value2 = Now()

将其添加到宏的末尾或至少 之后 以下检查,您的宏检查最后一次运行单元格值是否在今天之前。那么总数将如下所示:
If Sheetx.Range("rLastRun").Value2 < Date Then

<your macro>

Sheetx.Range("rLastRun").Value2 = Now()

End If

对于每次打开不同的文件,您必须更加具体,因为到目前为止提供的信息我们无法提供帮助。问自己以下问题:
  • 文件属性中是否有任何逻辑?
  • 除了时间戳之外,它是否每次都具有相同的名称(例如 Input20121128.xls 和 Input20121127.xls?
  • 文档名称是否在有限的可能名称池中?
  • 它总是在同一个文件夹中吗?
  • 它是否有特定的创建者、日期、时间……?

  • 提供信息后,您的文件查找将是:
    Dim strInputfile As String

    <other code>

    strInputfile = "<standardfolderstring>" & Format(Date, "dd/mm/yyyy") & " Test.xlsx"

    关于VBA 每天运行一次宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600270/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com