【发布时间】:2011-12-16 17:34:01
【问题描述】:
这是我第一次使用 VB。我主要习惯于在 matlab 中工作,并且发现我在 matlab 中认为理所当然的许多东西必须在 VB 中显式声明。令人沮丧!
特别是我需要声明两个数组大小 s1 和 s2。正如您在下面的代码中看到的,s1 是集合“n”中的元素数,其中变量“stratum”等于 1。s2 是集合“n”中的元素数,其中变量“stratum”等于 2。漂亮直截了当。
我的方法是简单地将层变量 1 循环到 n 并计算这些出现次数;然后将结果总和声明为常数。这在 matlab 中可以很好地工作,但 VB 不接受 s1 和 s2 作为常量。当我在循环后插入 debug.print 命令时,它甚至不会显示 s1 和 s2。
我已经浏览了已经发布的相关帖子。我很感激任何建议。谢谢。
Sub TOAinput()
Const n As Integer = 648
Dim stratum(n), hybrid(n), acres(n), hhsz(n), offinc(n)
For i = 1 To n
stratum(i) = Worksheets("hhid level").Cells(i + 1, 2).Value
Next i
Dim s1 As Integer
Dim s2 As Integer
s1 = 0
s2 = 0
For i = 1 To n
If stratum(i) = 1 Then
s1 = s1 + 1
Else:
s2 = s2 + 1
End If
Next i
Dim acres1(s1), hhsz1(s1), offinc1(s1), acres2(s2), hhsz2(s2), offinc2(s2)
(...)
End Sub
【问题讨论】: