我编写了一个相对简单的程序,旨在执行以下操作:
- 我的电子表格中有两列,B 和 C。两个数据集都从第 26 行开始
- B 包含一个项目的编号(例如项目 1),C 包含每个行项目的标识符,以便可以将多个服务分配给一个项目。然后,这两个变量的组合将形成每个行项目的唯一 ID(例如,项目 1 中第三个项目的 1/3)
- 每次在 B 列中输入新的项目 ID 时,C 列应重新从 1 开始
- 一旦项目列表完成,循环应该停止(第一个 if 条件)
- 我使用另一个过程按项目编号和另一个标准对数据集进行排序,这意味着我每次之后还必须重写 C 列
- 为了使代码更易于阅读,我创建
ThisRow
并LastRow
我的代码不会产生错误消息,但也不会返回所需的结果:单元格 C27 的值应该为 2,但它返回 1,并且同一列中下面的所有单元格都是空白的。这看起来很奇怪,因为在即时窗口中它们都得到了 1 的值(这仍然不正确,但与它打印到电子表格的不同)。
我已经尝试了一段时间来修复它,但我不知道错误可能出在哪里。非常感谢您的帮助!下面的代码:
Sub DataSort()
Dim i As Object, ThisRow As Integer , LastRow As Integer
Range("C26").Value = 1
Range("C27").Activate
ThisRow = ActiveCell.Offset(0, -1).Value
LastRow = ActiveCell.Offset(-1, -1).Value
For Each i In Range("ProcessID")
If ThisRow = 0 Then
Exit Sub
ElseIf ThisRow > LastRow Then
ActiveCell.Value = ActiveCell.Offset(0, -1).Value + 1
Else
ActiveCell.Value = 1
End If
Debug.Print ActiveCell.Value
Next i
End Sub
>更新: 这是电子表格的截图;希望这会有所帮助: