Excel VBA中图表的自动更新

Excel VBA中图表的自动更新,excel,vba,loops,date,Excel,Vba,Loops,Date,我想知道为什么我的代码不起作用 Sheets("Chart").Activate FinalRow = Cells(Rows.Count, 1).End(xlUp).Row Range("A" & Rows.Count).End(xlUp).Offset(1).Value = Date For i = 2 To FinalRow If Cells(i, 1).Value = Date Then Cells(i, 2).Value = Sheets("Main

我想知道为什么我的代码不起作用

Sheets("Chart").Activate

FinalRow = Cells(Rows.Count, 1).End(xlUp).Row

Range("A" & Rows.Count).End(xlUp).Offset(1).Value = Date

For i = 2 To FinalRow
    If Cells(i, 1).Value = Date Then
        Cells(i, 2).Value = Sheets("Main Sheet").Range("D2").Value
        Cells(i, 4).Value = Sheets("Main Sheet").Range("D3").Value
    End If
Next i

循环似乎忽略了列A中的日期值。我是否遗漏了什么?

在将日期添加到其下方的单元格之前,您可以确定最终的行数。For循环在FinalRow处停止,该行在到达包含添加日期的单元格之前


您需要在确定最终流之前设置日期,或者将i从2循环到最终流+1

在将日期添加到其下方的单元格之前确定最终流。For循环在FinalRow处停止,该行在到达包含添加日期的单元格之前


在确定最终行之前,您需要设置日期,或者将i从2循环到最终行+1

您应该使用工作表对象限定所有的
单元格()
,否则它们默认为活动工作表。此外,还可以使用您希望进行行计数的工作表来限定
行数。严格来说,激活正在处理的工作表后,无需限定对单元格和行的引用。这对代码的运行方式没有任何影响。然而,这是更好的实践,因为代码更容易阅读,更安全,因为在对代码进行更改时,您不必总是确保正确的工作表处于活动状态。不必激活工作表也可以提高性能。您应该使用工作表对象限定所有的
单元格()
,否则它们将默认为活动工作表。还可以对
行进行质量控制。使用您希望进行行计数的工作表进行计数。
。严格来说,激活正在处理的工作表后,无需限定对单元格和行的引用。这对代码的运行方式没有任何影响。然而,这是更好的实践,因为代码更容易阅读,更安全,因为在对代码进行更改时,您不必总是确保正确的工作表处于活动状态。不必激活图纸也可以提高性能。