Excel 基于单元格值插入行

Excel 基于单元格值插入行,excel,excel-formula,vba,Excel,Excel Formula,Vba,我不熟悉宏Excel函数,我尝试在特定列的单元格值发生更改时插入一行。比如说, 第B行 1便士 2便士 3便士 4问 5问 6问 7 q将以下内容插入您的工作表1(工作表1)VBA模块(或您希望使用此功能的工作表相关模块) 如果更改后的单元格的列号为第1列或a请尝试以下代码: Sub Demo() Dim ws As Worksheet Dim lastRow As Long, i As Long Set ws = ThisWorkbook.Sheets("Sheet

我不熟悉宏Excel函数,我尝试在特定列的单元格值发生更改时插入一行。比如说,

第B行
1便士
2便士
3便士
4问
5问
6问

7 q
将以下内容插入您的工作表1(工作表1)VBA模块(或您希望使用此功能的工作表相关模块)

如果更改后的单元格的列号为第1列或a

请尝试以下代码:

Sub Demo()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")  'set you data sheet here
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row  'get the last row in column A
    For i = lastRow To 2 Step -1    'loop from last row to row 2
        If ws.Range("A" & i) <> ws.Range("A" & i - 1) Then  'compare value if not same
            ws.Range("A" & i).EntireRow.Insert  'if value are not same insert row
        End If
    Next i
End Sub
子演示()
将ws设置为工作表
昏暗的最后一排一样长,我一样长
设置ws=ThisWorkbook.Sheets(“Sheet1”)'在此处设置数据表
lastRow=单元格(Rows.Count,“A”).End(xlUp)。Row'获取列A中的最后一行
对于i=lastRow到2,步骤-1'从最后一行循环到第2行
如果ws.Range(“A”&i)ws.Range(“A”&i-1),则“如果不相同,则比较值”
如果值与插入行不同,则ws.Range(“A”&i).EntireRow.Insert
如果结束
接下来我
端接头

学习如何在VBA中编写循环以及如何在单元格范围内循环。此外,谷歌如何插入一行使用VBA。祝你好运。@Andretra您好,我尝试过循环,在excel中运行上述编辑的代码后没有出现错误,但它仍然不起作用,你知道原因吗?还有一个问题,当插入一行时,你知道如何使插入行的某些单元格的值为0吗?@Faheera-类似于
ws.Range(“col_name”&I+1)
应该有效,但这取决于您到底想做什么。
Sub Demo()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")  'set you data sheet here
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row  'get the last row in column A
    For i = lastRow To 2 Step -1    'loop from last row to row 2
        If ws.Range("A" & i) <> ws.Range("A" & i - 1) Then  'compare value if not same
            ws.Range("A" & i).EntireRow.Insert  'if value are not same insert row
        End If
    Next i
End Sub