[英]Show cell value in a Msgbox based on IF statement on another column - Excel VBA
[英]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.