Excel 基于单元格值插入行
我不熟悉宏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
第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