我有一个问题,这个宏完全拒绝工作。 我正在尝试让宏总结语言课程的课时数,以便检查长记录文件。 为了给你一个完整的解释,第2栏有课程的名称(例如高级英语2),第3栏有一个版本(这是一个数字)。该文件先前按列2排序,然后是3.如果课程名称和版本相同,则表示我需要将小时数添加到总计中。 “教师”如果指的是在该栏中有教师或助理,但后者不需要计算他们的小时数(所以我想跳过有一个的行)。 第5列和第6列中的单元格是时间(例如13:00,08:45)。 我希望代码在第12列写入小时数(无论格式如何,我知道excel会将日期和时间读作数字,因此我可以对该单元格中的数字感到满意)。 感谢所有愿意就我的错误提出建议的人:)
ENGLISH; ENGLISH UPPER INTERMEDIATE; 30; 15/01/2014; 08:30; 13:00;老师; A342; C0329
ENGLISH; ENGLISH UPPER INTERMEDIATE; 30; 15/01/2014; 14:00; 17:00;老师; A342; C0329
ENGLISH; ENGLISH GRAMMAR; 36; 14/01/2014; 08:30; 13:00;老师; A342; C0329
ENGLISH; ENGLISH GRAMMAR; 36; 14/01/2014; 14:00; 17:00;老师; A342; C0329
ITALIAN; ITALIANO BASE; 7; 15/01/2014; 08:30; 13:00;老师; A342; BR240
ITALIAN; ITALIANO BASE; 7; 15/01/2014; 14:00; 17:00;老师; A342; BR240
意大利; LETTERATURA E STORIA; 8; 16/01/2014; 08:30; 13:00;老师; A342; BR240
意大利; LETTERATURA E STORIA; 8; 16/01/2014; 14:00; 17:00;老师; A342; BR240
ITALIAN; ITALIANO PER IDIOTI; 7; 21/01/2014; 08:30; 13:00;老师; A342; C0329
ITALIAN; ITALIANO PER IDIOTI; 7; 21/01/2014; 14:00; 17:00;老师; A342; C0329
西班牙语; LA TAUROMAQUIA; 17; 14/01/2014; 08:30; 13:00;老师; A342; U6014
西班牙语; LA TAUROMAQUIA; 17; 14/01/2014; 14:00; 17:00;老师; A342; U6014
西班牙语;西班牙语高级; 19; 21/01/2014; 10:30; 13:00;老师; A342; U6012
西班牙语;西班牙语高级; 19; 21/01/2014; 14:00; 17:30;老师; A342; U6012
西班牙语;西班牙语123; 17; 16/01/2014; 08:30; 13:00;老师; A342; U6014
西班牙语;西班牙语123; 17; 16/01/2014; 14:00; 17:00;老师; A342; U6014
西班牙语;西班牙语分类; 18; 22/01/2014; 08:30; 13:00;老师; A342; U6014
西班牙语;西班牙语分类; 18; 22/01/2014; 14:00; 17:00;老师; A342; U6014
西班牙语;西班牙语贷款; 17; 15/01/2014; 08:30; 13:00;老师; A342; U6014
西班牙语;西班牙语贷款; 17; 15/01/2014; 14:00; 17:00;老师; A342; U6014
西班牙语;西班牙语和葡萄牙语:为什么?; 15; 23/01/2014; 10:30; 13:00;老师; A342; U6017
西班牙语;西班牙语和葡萄牙语:为什么?; 15; 23/01/2014; 14:00; 17:30;老师; A342; U6017
FRENCH; FRENCH INTENSIVE; 48; 07/01/2014; 08:30; 13:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 07/01/2014; 08:30; 13:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 07/01/2014; 14:00; 17:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 07/01/2014; 14:00; 17:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 08/01/2014; 08:30; 13:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 08/01/2014; 08:30; 13:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 08/01/2014; 14:00; 17:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 08/01/2014; 14:00; 17:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 09/01/2014; 08:30; 13:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 09/01/2014; 08:30; 13:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 09/01/2014; 14:00; 17:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 09/01/2014; 14:00; 17:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 10/01/2014; 08:30; 13:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 10/01/2014; 08:30; 13:00; CoDocente; 00348170101; C0691
FRENCH; FRENCH INTENSIVE; 48; 10/01/2014; 14:00; 17:00;老师; A342; C0329
FRENCH; FRENCH INTENSIVE; 48; 10/01/2014; 14:00; 17:00; CoDocente; 00348170101; C0691
这是一个与我的真实数据类似的csv:)
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim k As Integer
Dim z As Integer
Dim hoursA As Integer
Dim hoursB As Integer
Dim hours As Integer
z = 3
i = 2
k = 12
Do
hours = 0
Do
t = 1
If Cells(i, 2) = Cells(z, 2) Then
If Cells(i, 3) = Cells(z, 3) Then
If Cells(i, 5) = "Teacher" Then
hoursA = Cells(i, 5).Value
hoursB = Cells(i, 6).Value
hours = hoursB - hoursA + hours
Cells(i, k).Value = hours
End If
Else
t = 0
End If
Else
t = 0
End If
i = i + 1
z = i + 1
Loop While t > 0
Loop While UCase(Cells(i, 2)) <> ""
End Sub
答案 0 :(得分:0)
我发现代码存在两个问题。
Integer
中。将三个Hours
变量更改为Double
。Cells(i,5)
。将其更改为Cells(i,4)