繁体   English   中英

Excel VBA:自动插入新数据时如何自动向下移动单元格?

[英]Excel VBA: How do I auto shift cells down when new data is inserted automatically?

首先,我是在 excel 中使用 VB 的新手。 这是我的问题:我使用 DreamReport 每 24 小时将植物数据发送到一个 excel 文件。 我使用的是单个静态 excel 文件。

问题是通过使用静态文件,数据每天都会被替换。 这是因为数据会自动放置在同一组单元格中,并且前 24 小时会被覆盖。 以下是数据的放置方式:

Excel表格

因此,我需要一个脚本,该脚本将在报告添加屏幕截图中的数据后立即将新数据和所有先前数据向下移动,以便不会覆盖任何数据。

在此先感谢任何有帮助的人! 如果我对任何事情不清楚,请提出问题。

正如我从您所写的内容和屏幕截图中收集到的那样,Excel 工作表由您的其他应用程序 DreamReport 提供给第 3 行和第 4 行(或者可能只有第 3 行)。 因此,根据给定的信息,您可以将以下代码粘贴到 Excel 工作簿的 VBA 编辑器中的 Sheet1(Sheet1) 上。 现在发生的情况是每次输入数据时,数据都会向下移动,为下几天的数据创建一个空范围。

按 Alt+F11 打开 VBA 编辑器,然后双击下面的工作表,如图所示。 打开后粘贴下面的代码。 然后测试并确认。 双击此表粘贴代码

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A3:C4")         ' Checks whether this range changed

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then

    Application.EnableEvents = False      ' disables events to avoid a loop
    Range("A3:C4").Insert Shift:=xlDown   ' shifts this range down
    Application.EnableEvents = True       ' ensures events are re-enabled

End If

结束子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM