我想查找包含精確值的單元格,並在這些單元格的前面插入空白行。我已經有了代碼,可以找到並插入這些行,但只能在這些單元格的後面。VBA - 在列中查找值並在這些單元格前插入空行
的代碼是在這裏:
Private Sub SearchnInsertRows()
Dim LastRow As Long
Dim rng As Range, C As Range
Dim vR(), n As Long
With Worksheets("INPUT_2") ' <-- here should be the Sheet's name
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' last row in column A
Set rng = .Range("A1:A" & LastRow) ' set the dynamic range to be searched
' loop through all cells in column A and copy below's cell to sheet "Output_2"
For Each C In rng
If C.Value = "Workflow" Then
.Range(Cells(C.Row + 1, 1), Cells(C.Row + 8, 8)).EntireRow.Insert
End If
Next C
End With
End Sub
該代碼將增加8行中的所有細胞,它含有單詞「工作流」的背後,但我無法弄清楚,如何把它們在細胞中的前「工作流程「
我想,當我把 - 而不是+,它要解決它,但是當我改變這一行是這樣的:
.Range(Cells(C.Row - 1, 1), Cells(C.Row - 8, 8)).EntireRow.Insert
並運行它時,Excel將卡住,仍然添加行。
請問您有什麼建議,請問我該怎麼做?
非常感謝
代替'Each'循環使用'對於i = LASTROW 1個步驟-1'循環來從最後一排第一。插入/刪除行總是要倒退(從下到上)。要在特定行之前插入行,可以使用'.Insert xlShiftDown'來判斷活動行是否應該向下或向上移動(參見[Range.Insert方法](https://msdn.microsoft.com/VBA/Excel-VBA /物品/範圍嵌法-Excel文件))。 –
感謝您的諮詢!我嘗試改變部分beginnig'For Each' it - 'For i = LastRow To 1 Step -1 If rng.Cells.Value =「Workflow」Then .Cells(「A」)。EntireRow.Insert 結束如果 接下來我'現在我得到錯誤消息_類型mismatch_該行'.Cells(「A」)。EntireRow.Insert'。請問我做錯了什麼? – Srpic
您沒有正確使用'.Cells',您需要指定像'.Cells(row,column)'這樣的行和列,或者改爲使用'.Rows(i)'。查看我的答案以獲得解決方案。 –