我是一名正在我的某个班级学习VBA的学生,其中当前的作业是从.txt文件中提取数据并显示它,以及总计,然后对总数进行评分。使用数组我在使用数组的前两个部分中取得了成功,但是当尝试计算等级的总数时,数组只考虑起始数字。有什么想法吗?代码
/* Variables
================================== */
@bw: 3px; // border width
/* Tables
================================== */
.table {
display: flex;
flex-wrap: wrap;
margin: 0 0 3em 0;
padding: 0;
}
.table-cell {
box-sizing: border-box;
flex-grow: 1;
width: 100%; // Default to full width
padding: 0.8em 1.2em;
overflow: hidden; // Or flex might break
list-style: none;
border: solid @bw white; // margins would overflow row and cause early wrapping
background: fade(slategrey,20%);
> h1, > h2, > h3, > h4, > h5, > h6 { margin: 0; }
}
/* Table column sizing
================================== */
.table2cols > .table-cell { width: 50%; }
.table3cols > .table-cell { width: 33.33%; }
.table4cols > .table-cell { width: 25%; }
/* Page styling
================================== */
body {
border: 1px solid grey;
margin: 0 auto;
max-width: 800px;
padding: 2em;
}
h1, h2, h3, h4, h5, h6 { margin-top: 0; }
答案 0 :(得分:2)
问题在于您的If
条件。在VBA 1 < 2 < 1
评估为true
。这就是为什么即使你的total(i)
超过100,它总是评估为真,你的elseif
没有发挥作用。
在VBA / VB6中,类型转换只是邪恶的。
您需要重写If
和elseif
条件
示例:
Sub test()
Dim x As Long
Dim y As Long
x = 101
y = 99
'/ What you are doing
If 0 <= x < 1 Then
MsgBox "This is not python."
End If
'/ How you should do it.
If y >= 0 And y < 100 Then
MsgBox "This is how you do it in VBA."
End If
End Sub