首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXCEL VBA -如果单元格与另一个单元格的内容匹配,则创建一个msgbox警告。

EXCEL VBA -如果单元格与另一个单元格的内容匹配,则创建一个msgbox警告。
EN

Stack Overflow用户
提问于 2017-09-10 10:59:57
回答 1查看 617关注 0票数 1

我是一名校长,我正在用excel开发一个调度管理应用程序。

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

所有的纸张都是相同的,并且在相同的坐标上有重要的信息。

现在,我已经能够把课程表复制到老师的课程表上了,这就像一种魅力。我制定学生的时间表,它自动使老师的时间表。

现在我有点问题了。

如果我指派一位老师,我们假设星期一8点半到1节课,然后错误地把同一位老师分配到另一堂课,它与第一节课重叠,并把第一节课交给老师。上周,同一位老师同时被分配到两个班。

所以我的问题是:

是否有一种方法(在单元格更改上)使vba脚本能够检查单元格b29在其他工作表上是否具有相同的值,而不管工作表的位置和名称如何?

例:

我将教师A分配给1班-星期一8.30,其中教师名和日期/小时为单元格B29,类为单元格d5和工作表名。

如果我在另一堂课上指派同一位老师给b29 If,他会显示一个信息框,上面写着“有重叠”。

我最大的麻烦是,每年班组和教师都会改变,而纸张的相对位置也会因为课程的年份和课程/班级的数量而变化,

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-10 11:41:14

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

希望能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46139962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档