繁体   English   中英

EXCEL VBA-如果单元格与另一个单元格的内容匹配,则发出msgbox警告

[英]EXCEL VBA - Make a msgbox warning if cell is matches content of another cell

我是一名学校校长,我正在尝试在Excel中制作一个计划管理应用程序。

我每堂课有一张,每位老师有一张。

所有工作表都相同,并且重要信息在相同坐标上。

现在,我已经能够将课程时间表复制到老师的课程表上,并且它的工作原理就像是一种魅力。 我为学生制定时间表,并且自动为老师制定时间表。

现在我有一个问题。

如果我分配一位老师,例如星期一在8.30分配到一堂课,然后由于错误地将同一位老师分配到另一堂课,则该老师重叠并且将第一堂课转给了老师。 上周,同一位老师同时被分配到两个班级。

所以我的问题是这样的:

有没有办法制作一个(在单元格更改时)vba脚本,该脚本检查单元格b29在其他工作表上是否具有相同的值,而不管工作表的位置和名称如何?

例如:

我将老师A分配给班1-星期一8.30,其中老师的姓名和日期/时间是单元格B29,班级是单元格d5和工作表名称。

如果我在另一堂课中分配给b29的同一位老师,则会显示一个消息框,说“有重叠”。

我最麻烦的是,每年的班级和老师都会变化,而且表的相对位置也会因课程的年份和课程/课程的数量而变化,

谢谢!

我认为代码是这样的:将此代码复制到工作表(代码):

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("B29")) Is Nothing Then
        If Selection.Cells.Count = 1 Then
            Result = getTime(Range("B29").Value)
        End If
    End If

End Sub

将此代码复制到Module1

Function getTime(TimeAdd As Date)

    For Each ws In Worksheets
        If ws.Name <> ActiveSheet.Name Then
            If ws.Range("B29").Value = TimeAdd Then
                Result = True
                Exit For
            End If
        End If
    Next

    If Result = True Then MsgBox "There is an overlap."

End Function

希望这个帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM