如何在新列中的 For 循环生成的列之一中获取最终值?

How to get the final value in one of the columns generated by For Loop in a New Column?

我正在使用 VBA。我程序中的 For() 循环是:

        For i = 5 To 23
            Status$ = GetScreen(4,i,3)
            DateofDPS$=GetScreen(12,i,8)
            TimeofStatus$=GetScreen(23,i,8)
            TypeofDPS$=GetScreen(34,i,8)
            Tech$=GetScreen(41,i,8)
            techName$=GetScreen(50,i,30)

            If Asc(GetScreen(43,i,6))<>32 Then
                Write #OutputFile, DPSNo$, Status$,DateofDPS$,TimeofStatus$,TypeofDPS$,Tech$,techName$
            Else
            End If
        Next i

存储在#OutputFile 中的结果是

Num |   STAT    |   DAT         |   TIM         |   TYP |   TEC |   techName
----+-----------+---------------+---------------+-------+-------+------------
477 |   P       |   12/17/2014  |   17:20:34    |   EX  |   175 |   UME 
477 |   I       |   12/17/2014  |   17:40:47    |   EX  |   255 |   VIN 
477 |   O       |   12/17/2014  |   17:40:58    |   EX  |   255 |   VIN 
804 |   P       |   12/11/2014  |   11:01:39    |   EX  |   207 |   KAU 
804 |   I       |   12/11/2014  |   14:34:07    |   EX  |   253 |   JOS 
804 |   O       |   12/11/2014  |   14:34:26    |   EX  |   253 |   JOS 
402 |   P       |   11/13/2014  |   22:08:50    |   EX  |   243 |   SHA 
402 |   I       |   11/14/2014  |   05:04:04    |   EX  |   247 |   LAK 
402 |   O       |   11/14/2014  |   05:04:08    |   EX  |   247 |   LAK

我想添加另一列 finalAction,结果应如下所示:

Num |   STAT    |   DAT         |   TIM         |   TYP |   TEC |   techName    |   finaAction
----+-----------+---------------+---------------+-------+-------+---------------+-------------
477 |   P       |   12/17/2014  |   17:20:34    |   EX  |   175 |   UME         |   VIN
477 |   I       |   12/17/2014  |   17:40:47    |   EX  |   255 |   VIN         |   VIN
477 |   O       |   12/17/2014  |   17:40:58    |   EX  |   255 |   VIN         |   VIN
804 |   P       |   12/11/2014  |   11:01:39    |   EX  |   207 |   KAU         |   JOS
804 |   I       |   12/11/2014  |   14:34:07    |   EX  |   253 |   JOS         |   JOS
804 |   O       |   12/11/2014  |   14:34:26    |   EX  |   253 |   JOS         |   JOS
402 |   P       |   11/13/2014  |   22:08:50    |   EX  |   243 |   SHA         |   LAK  
402 |   I       |   11/14/2014  |   05:04:04    |   EX  |   247 |   LAK         |   LAK  
402 |   O       |   11/14/2014  |   05:04:08    |   EX  |   247 |   LAK         |   LAK    

For() 循环写入平面文件。

我想在 techName 列中添加最终名称并重复相同的操作。

有什么办法吗?

第一个想到的选项:

创建一个变量来保存 "LastDPONo" 然后观察当前记录 DPONo$ 和 "LastDPONo" 值之间的变化。

发生更改时,您会找到该 DPONo$ 的最后一条记录,然后您可以识别分配给该 DPSNo$ 的最后更新的 Tech$

您要么需要在将行写出到输出文件之前识别正确的 Tech$,要么在找到 Tech$ 值后必须修改输出文件。

  1. 如果您希望首先识别 Tech$,您可以将数据写入 查找最后一行时将每一行添加到数组或记录集中 DPSNo$ 的连续行以找到您需要的 Tech$。一旦您 找到您可以循环遍历数组或记录集的 Tech$ 创建并写入数组或记录中每个实体的值 将记录集添加到输出文件中,最后添加 Tech$。

  2. 要修改文本文件,您可以添加一个额外的列,然后修改 此处概述的方法: http://software-solutions-online.com/2014/03/15/vba-modify-existing-text-file/#Jump2