我知道这是一个非常愚蠢的问题,但任何人都可以帮助我理解这些问题:
dim dmnth = array()
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"
提前感谢。
答案 0 :(得分:2)
dim dmnth = array()
这是一个无效的陈述。在VBScript中,您无法声明变量并使用单个语句中的值对其进行初始化。它应该是
Dim dmnth
dmnth = Array()
或更短
Dim dmnth : dmnth = Array()
声明变量dmnth
并使用空数组初始化变量。但是,这只有在您想要创建一个空的1维数组时才有用,该数组将在保留其值的同时动态增长(也可以通过ReDim arr(-1)
实现)。由于您的数组有3个维度,因此这种初始化毫无意义。下面的命令足以进行声明和初始化。
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
如果已经声明dmnth
,则会将变量的大小调整为3维数组,其中1 st 维度的上限为Rs_emp_count + 1
{{1}在2 nd 维度中,以及3 rd 维度中的Rs_proj_count + 1
。数组的任何内容都将被丢弃。如果尚未声明total_days + 1
,则将其声明并初始化为具有给定上限的三维数组。
dmnth
这会将dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"
和pname
构建的字符串放入位置pid
,emp_cnt
,prj_cnt
的数组字段中。
答案 1 :(得分:1)
dim dmnth = array()
;这会将dmth
设置为函数array()
的返回值;无论那是什么。这是您计划中不必要的一步;除非array()
做一些有用的事情,除了返回一个值。
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
;这会破坏dmth
的内容;将dmnth
替换为具有尺寸的3D数组,分别为每个维度Rs_emp_count + 1
,Rs_proj_count + 1
和total_days + 1
。所有元素都被清除。
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"
将pname & " (" & pid & ")"
分配给数组的(emp_cnt, prj_cnt, 0)
元素。请记住,VBScript中的数组是基于零的;即(0,0,0)是有效元素。
答案 2 :(得分:0)
首先将dmnth声明为数组。 然后将其重新声明为三维数组。 然后将Emp_cnt,Prj_Cnt,第0个条目设置为pname& " ("& pid&")"