我正在使用Excel中的宏为我的大学课程编写时间表。我的时间表信息是以明文形式的简明格式:
主题名称
第1课详情
第2课详情
第3课详情
主题2名称
第1课详情
等。
主题3等..
我将课程详细信息作为字符串,并希望根据此信息找出我的主题名称。
我的方法是匹配课程代码(4位数字,然后是3个大写字母),然后是非贪婪的,然后是我的课程详情
正则表达式=“\ d {4} [A-Z] {3}(。| \ n)*?” &安培; ClassDetails
然后使用left(ReturnedMatch,7)获取课程代码
然而,当我遍历所有类详细信息时,它总是返回主题1的代码,即使对于主题2类2等也是如此。
提前致谢:)
编辑添加代码和数据:
textmatch =来自单元格(1,1)的类详细信息,从2个字母的日期表示开始,到例如日期结束。
We 9:00AM - 10:50AM
GU Bus Sch G42_2.17
Gervase Tuxworth
03/04/2015 - 04/01/2015
关注的代码在这里
.Pattern = "\d{4}[A-Z]{3}(.|\n)*?" & textmatch
Set matches = .Execute(Cells(1, 1).Value)
classname = Left(matches(0), 7)
MsgBox classname
单元格(1,1).Value =
Semester 1 2015 > Undergraduate > Griffith University
1004ICT - Foundations of Comp Systems
Status Units Grading Grade Program
Enrolled
10.00
Graded
B Eng Honours Civil / B IT
Class Nbr Section Component Days & Times Room Instructor Start/End Date
10719
L101
Lecture
We 9:00AM - 10:50AM
GU Bus Sch G42_2.17
Gervase Tuxworth
03/04/2015 - 04/01/2015
We 9:00AM - 10:50AM
GU Bus Sch G42_2.17
Gervase Tuxworth
04/15/2015 - 06/03/2015
13621
C106
Comp Lab
We 3:00PM - 4:50PM
Multimedia G23_2.21
Gervase Tuxworth
03/11/2015 - 04/01/2015
We 3:00PM - 4:50PM
Multimedia G23_2.21
Gervase Tuxworth
04/15/2015 - 06/03/2015
1007ENG - Engineering Fundamentals
Status Units Grading Grade Program
Enrolled
10.00
Graded
B Eng Honours Civil / B IT
Class Nbr Section Component Days & Times Room Instructor Start/End Date
11289
L101
Lecture
Tu 3:00PM - 4:50PM
Lec Th3/4 G17_Theatre4
Mark Bolton
03/03/2015 - 03/31/2015
Tu 3:00PM - 4:50PM
Lec Th3/4 G17_Theatre4
Mark Bolton
04/14/2015 - 06/02/2015