【发布时间】:2021-04-23 08:40:26
【问题描述】:
基本上,我有一个更新数据按钮,它从两个电子表格(在一本书内)的两列中获取信息。这段代码的总体目标是从一列中获取所有值,然后将另一列中的值附加到其下方。
Worksheets("Overall Flow").Range("A4:A1004").Value = Worksheets("Active").Range("A2:A1002").Value
Dim i As Integer
For i = 4 To 1004
If Worksheets("Overall Flow").Range("A" & Trim(str(i))) = "" Then
Worksheets("Overall Flow").Range("A" & Trim(str(i)) & ":A" & Trim(str(1000 + i))).Value = Worksheets("Inactive").Range("A2:A1002").Value
i = 1005
End If
Next
由于某种原因,第一行执行,然后结束。当我设置断点,然后一步一步做,之后没有其他步骤发生。
当我单独运行第一行时,它似乎工作正常,但在以下情况下不行:
Worksheets("Overall Flow").Range("A" & Trim(str(i)) & ":A" & Trim(str(1000 + i))).Value = Worksheets("Inactive").Range("A2:A1002").Value
或
Worksheets("Overall Flow").Range("A4:A1004").Value = Worksheets("Inactive").Range("A2:A1002").Value
出现在后面。
【问题讨论】:
-
您实际上有 3 个电子表格:“总体流程”、“活动”和“非活动”。当我运行它时,它工作正常......假设它正在做你认为它应该做的事情。它遍历 A4:A1004 中的每个单元格,当一个单元格为空白时,它将非活动工作表中的值一直复制到“总体流程”工作表的最后一行,然后结束程序。不确定您要做什么,但代码为我运行。如果它在语法上是正确的,你不会得到任何错误。您能否更具体地说明它应该做什么以及您的 3 张床单是什么样的?
-
这正是它应该做的。它第一次起作用。但在那之后,它就停止了工作。
-
这可能是因为一旦从“非活动”表中复制它们,“总体流程”表中的 A4:A1004 范围内不再有任何空白单元格(除非您的“非活动”表也有空白单元格)?
-
你在哪里设置断点,执行到底在哪里停止?它是否通过循环?
-
大约有 102 条记录处于活动状态,大约 350 条处于非活动状态。我在第一行设置了断点。它触发,按 F8,复制 Active 中的数据,然后什么也没发生