簡體   English   中英

VBA Excel-自動運行宏以在上面的單元格輸入值后插入新的空白行

[英]VBA Excel - Auto run macro to insert new blank row after cell above has value entered

我正在嘗試讓宏自動運行到:

  1. 在上面的數據驗證行(在A列中)輸入值的情況下,在每個部分(例如建築)中插入空白行。 我在工作表中的子代碼中輸入了代碼,當我在excel的“開發人員”選項卡中單擊“運行”時,它會插入一行,但是我希望每次在列中輸入內容時它會自動運行(在打開工作簿之后)一種。

Excel的打印屏幕

Sub BlankLine()
    'Updateby20150203
    Dim Rng As Range
    Dim WorkRng As Range

    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    Set WorkRng = WorkRng.Columns(1)

    xLastRow = WorkRng.Rows.count
    Application.ScreenUpdating = False

    For xRowIndex = xLastRow To 1 Step -1
        Set Rng = Range("B" & xRowIndex)
        If Rng.Value = "" = False Then
            Rng.Offset(1, 0).EntireRow.Insert Shift:=xlDown
        End If
    Next

    Application.ScreenUpdating = True
End Sub

我想我可以為您解決第一個問題。

當單元格隨着Sub Worksheet_Change(ByVal Target As Range)Sub Worksheet_Change(ByVal Target As Range) Sub發生變化時,您可以自動啟動宏。

這是描述: https : //support.microsoft.com/en-us/help/213612/how-to-run-a-macro-when-certain-cells-change-in-excel

您可以使用以下代碼插入新行:

Application.Selection.EntireRow.Insert shift:=xlDown

當您這樣做時,您會遇到新行將再次觸發事件以啟動宏,因此再次插入新行。 這導致無限循環。 為了阻止這種情況的發生,我們需要在更改期間禁用事件。

Application.EnableEvents = False
Call new_line_below_selection_macro
Application.EnableEvents = True

這是一個帶有類似問題的問題: 如何結束VBA中的無限“更改”循環

我希望這有幫助。

這是應該放在工作表中的代碼:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("A1:C10") 'Area this should apply

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

        Application.EnableEvents = False
        'either you put your code here
        'Application.Selection.EntireRow.Insert shift:=xlDown
        'or you call it from a module
        Call Module1.BlankLine
        Application.EnableEvents = True

    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM