0

我知道这是一个非常愚蠢的问题,但任何人都可以帮助我理解这些行:

dim dmnth = array()
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"

提前致谢。

4

3 回答 3

2
  • dim dmnth = array()

    这是一个无效的声明。在 VBScript 中,您不能在单个语句中声明一个变量并用一个值对其进行初始化。应该是

    Dim dmnth
    dmnth = Array()
    

    或更短

    Dim dmnth : dmnth = Array()
    

    它声明一个变量dmnth并用一个空数组初始化变量。但是,这仅在您想要创建一个空的一维数组时有用,该数组将在保留其值的同时动态增长(也可以通过 实现ReDim arr(-1))。由于您的数组有 3 个维度,因此此初始化毫无意义。下面的命令足以声明和初始化。

  • Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)

    如果dmnth已经声明,这会将变量的大小调整为 3 维数组,其上限位于Rs_emp_count + 1第 1Rs_proj_count + 1第 2total_days + 1第 3维。数组的任何内容都将被丢弃。如果尚未声明,则将其声明并初始化为具有给定上限的 3 维数组。dmnth

  • dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"

    这会将一个从数组字段构造的字符串pname放入pid位置emp_cnt, prj_cnt,的数组字段中0

于 2013-06-14T13:55:44.743 回答
1

dim dmnth = array(); this 设置dmth为函数的返回值array();不管那是什么。这是程序中不必要的步骤;除非array()除了返回值之外还做一些有用的事情。

Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1); 这会破坏dmth; 替换dmnth为具有大小的 3D 数组,分别为每个维度Rs_emp_count + 1Rs_proj_count + 1total_days + 1。所有元素都被清除。

dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"赋值pname & " (" & pid & ")"(emp_cnt, prj_cnt, 0)数组的元素。请记住,VBScript 中的数组是从零开始的。即 (0, 0, 0) 是有效元素。

于 2013-06-14T12:00:54.460 回答
0

首先 dmnth 被声明为一个数组。然后将其重新声明为 3 维数组。然后将 Emp_cnt, Prj_Cnt, 0th entry 设置为 pname & " (" & pid & ")"

于 2013-06-14T11:56:37.473 回答