首页 > 解决方案 > 基于日期停止另一个 VBA 的 VBA 代码

问题描述

我有一个 VBA,可以在新工作簿中创建所选工作表的副本

Public Sub CopySelectedSheets()
    ActiveWindow.SelectedSheets.Copy
End Sub

我希望它在日期过去后停止运行,

所以得到了这个代码

Dim stopDate As Date
stopDate = Sheets("Org. & Staff Basic Data").Range("C19").Value
If Date >= stopDate Then
   MsgBox "This code cannot be executed after " & stopDate
   Exit Sub
End If

Public Sub CopySelectedSheets()
    ActiveWindow.SelectedSheets.Copy
End Sub

但是当我运行它时错误编译突出显示“C19”

标签: excelvba

解决方案


您的要求没有多大意义;您需要做的是修改 CopySelectedSheets 子,以便它按照您的意愿完成工作

Public Sub CopySelectedSheets()

    Dim Sh As WorkSheet
    Dim stopDate As Date
    
    stopDate = Sheets("Org. & Staff Basic Data").Range("C19").Value
    For Each Sh In ActiveWindow.SelectedSheets
        If Date >= stopDate Then
           MsgBox "This code cannot be executed after " & stopDate
           Exit For
        Else
            Sh.Copy
        End If
    Next Sh

End Sub

推荐阅读