Type HH
   D As Double
   K As Double
   L As Double
   n As Double
   A1A As Double
   A1B As Double
   c As Double
   Wt As Double
   Fd As Double
   f2 As Double
   f3 As Double
   Z As Double
   y As Double
End Type
----------现在要将Type HH的数据全部除oScale,现在采用的方法是
dim bb as HH
  With bb
     D = Arr(1) / oScale
     K = Arr(2) / oScale
     L = Arr(3) / oScale
     n = Arr(4) / oScale
     A1A = Arr(5) / oScale
     A1B = Arr(6) / oScale
     c = Arr1(1) / oScale
     NA = Arr1(2) / oScale
     NB = Arr1(3) / oScale
     s = Arr1(4) / oScale
     h1 = Arr1(5) / oScale
     H = Arr1(6) / oScale
     r = Arr1(7) / oScale
     Wt = Arr1(8) / oScale
     Fd = Arr(7) / oScale
     f1 = Arr(8) / oScale
  End With请问各位大侠的问题是:
Type End Type的数据能通过遍历,整体/oScale.
而不用上面的方法对每个数据/oScale.
谢谢.

解决方案 »

  1.   

    即然全是Double类型, 你可以建个数组啊。
    Type HH
      D(7) As Double
    End Type
    或者通过momeycopy函数将变量值考贝到一个数组中。
      

  2.   

    http://topic.csdn.net/t/20030715/23/2032983.html
      

  3.   

    赞同一楼,改变结构体声明,或者使用MemoryCopy函数。
      

  4.   

    for each in是遍历对象的 无法应用于type
    如果一定要用for each in
    那么不妨用collection对象代替type
      

  5.   


    用数组方法,可能会将工作量搞复杂了.还不如直接采用数组.
    用Type End Type的主题思想,按业内的约定俗成的符号和格式进行数据认定.
    用数组对n个变量进行对应赋值,花费时间要比本帖所发的数据要复杂多了.个人小结:老老实实的约定俗成的传统方法.谢谢,各位大侠的回帖,理清这个知识点的模糊认识.