[英]Excel VBA: How do I auto shift cells down when new data is inserted automatically?
首先,我是在 excel 中使用 VB 的新手。 這是我的問題:我使用 DreamReport 每 24 小時將植物數據發送到一個 excel 文件。 我使用的是單個靜態 excel 文件。
問題是通過使用靜態文件,數據每天都會被替換。 這是因為數據會自動放置在同一組單元格中,並且前 24 小時會被覆蓋。 以下是數據的放置方式:
因此,我需要一個腳本,該腳本將在報告添加屏幕截圖中的數據后立即將新數據和所有先前數據向下移動,以便不會覆蓋任何數據。
在此先感謝任何有幫助的人! 如果我對任何事情不清楚,請提出問題。
正如我從您所寫的內容和屏幕截圖中收集到的那樣,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.