我对这个宏有一个问题,它根本不能工作。我正在尝试让宏汇总语言课程的课堂时数,以便检查长记录文件。为了给你一个完整的解释,在第二栏有课程的名称(例如高级英语2),在第三栏有一个版本(它是一个数字)。文件之前按第2列排序,然后按第3列排序。如果课程名称和版本相同,则意味着我需要将小时数添加到总数中。“教师”if指的是在该列中有教师或助理,但后者不需要计算他们的课时(所以我想跳过有一个的行)。第5列和第6列中的单元格是时间(例如13:00,08:45)。我希望代码在第12列中写入小时数(无论格式如何,我知道excel将日期和时间作为数字读取,因此我可以在该单元格中只使用一个数字)。感谢愿意就我的错误给出建议的每一个人:)
英语;英语上层INTERMEDIATE;30;15/01/2014;08:30;13:00;Teacher;A342;C0329
英语;英语上层INTERMEDIATE;30;15/01/2014;14:00;17:00;Teacher;A342;C0329
英语;英语GRAMMAR;36;14/01/2014;08:30;13:00;Teacher;A342;C0329
英语;英语GRAMMAR;36;14/01/2014;14:00;17:00;Teacher;A342;C0329
意大利语;意大利语BASE;7;15/01/2014;08:30;13:00;Teacher;A342;BR240
意大利语;意大利语BASE;7;15/01/2014;14:00;17:00;Teacher;A342;BR240
意大利语;LETTERATURA STORIA;8;16/01/2014;08:30;13:00;Teacher;A342;BR240
意大利语;LETTERATURA STORIA;8;16/01/2014;14:00;17:00;Teacher;A342;BR240
意大利语;每IDIOTI;7;21/01/2014;08:30;13:00;Teacher;A342;C0329意大利语
意大利语;每IDIOTI;7;21/01/2014;14:00;17:00;Teacher;A342;C0329意大利语
西班牙语;LA TAUROMAQUIA;17;14/01/2014;08:30;13:00;Teacher;A342;U6014
西班牙语;LA TAUROMAQUIA;17;14/01/2014;14:00;17:00;Teacher;A342;U6014
西班牙语;西班牙语ADVANCED;19;21/01/2014;10:30;13:00;Teacher;A342;U6012
西班牙语;西班牙语ADVANCED;19;21/01/2014;14:00;17:30;Teacher;A342;U6012
西班牙语;西班牙语123;17;16/01/2014;08:30;13:00;Teacher;A342;U6014
西班牙语;西班牙语123;17;16/01/2014;14:00;17:00;Teacher;A342;U6014
西班牙语;西班牙语ALLEGORIES;18;22/01/2014;08:30;13:00;Teacher;A342;U6014
西班牙语;西班牙语ALLEGORIES;18;22/01/2014;14:00;17:00;Teacher;A342;U6014
西班牙语;西班牙语LOANWORDS;17;15/01/2014;08:30;13:00;Teacher;A342;U6014
西班牙语;西班牙语LOANWORDS;17;15/01/2014;14:00;17:00;Teacher;A342;U6014
西班牙语;西班牙语和葡萄牙语: WHY?;15;23/01/2014;10:30;13:00;Teacher;A342;U6017
西班牙语;西班牙语和葡萄牙语: WHY?;15;23/01/2014;14:00;17:30;Teacher;A342;U6017
法语;法语INTENSIVE;48;07/01/2014;08:30;13:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;07/01/2014;08:30;13:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;07/01/2014;14:00;17:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;07/01/2014;14:00;17:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;08/01/2014;08:30;13:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;08/01/2014;08:30;13:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;08/01/2014;14:00;17:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;08/01/2014;14:00;17:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;09/01/2014;08:30;13:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;09/01/2014;08:30;13:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;09/01/2014;14:00;17:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;09/01/2014;14:00;17:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;10/01/2014;08:30;13:00;Teacher;A342;C0329
法语;法语INTENSIVE;48;10/01/2014;08:30;13:00;CoDocente;00348170101;C0691
法语;法语INTENSIVE;48;10/01/2014;14:00;17:00;Teacher;A342;C0329
法语;法语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
发布于 2014-01-22 22:17:00
我发现代码有两个问题。
Integer
s中。将三个Hours
变量更改为列D上的类型,但您正在检查Cells(i,5)
。将其更改为Cells(i,4)
https://stackoverflow.com/questions/21284996
复制相似问题