【发布时间】:2022-01-19 00:42:28
【问题描述】:
当excel中两列单元格的值发生变化时,我想插入一行 例如,F 列和 G 列,其中 F 的字符串值为“Buy”和“Sell”,G 列的字符串值为“D”和“S”。
我的代码仅在一个列条件下创建一个空白行,即当值更改时添加一个空白行。
Sub InsertRowsAtValueChange()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 2 Step -1
If WorkRng.Cells(i, 1).Value <> WorkRng.Cells(i - 1, 1).Value Then
WorkRng.Cells(i, 1).EntireRow.Insert
End If
Next
Application.ScreenUpdating = True
End Sub
但是当列被排序并且最后一个值是 “买” - “D” “买” - “S” “卖出” - “D” “卖出” - “S”
图片显示了我想要实现的目标。Code should work to create the bottom requirement
【问题讨论】:
-
似乎您想在
Cells(i, 1)和Cells(i - 1, 1)中使用与1不同的列号。根据您的屏幕截图,该行似乎仅在 G 列更改时才插入,但您可以添加一个条件来检查 F 列是否也发生更改(使用Or)。
标签: excel vba if-statement conditional-statements