在find特定文本后插入行

我是相当新的Excel,我试图设置一个macros,在工作表的特定点之后添加一行。 示例:第2行包含文本“原始”,所以它应该插入一个新的行,以此类推。

我知道插入之前可能比较容易插入,所以我可以改变设置(例如,如果这是一个更简单的解决scheme,那么“原始”将位于第2行,并且新行被添加到第2行)。

这可能吗? 怎么样?

感谢所有可能的帮助。

比以前的答案稍微简单一些:

 Sub NewRowInsert() Dim SearchText As String Dim GCell As Range SearchText = "Original" Set GCell = Cells.Find(SearchText).Offset(1) GCell.EntireRow.Insert End Sub 

这将与当前活动工作表一起使用。 如果您想要使用其他工作表(如Sheet2),则可以使用:

 Set GCell = Worksheets("Sheet2").Cells.Find(SearchText).Offset(1) 

如果您想在不同的工作簿(例如TestBook.xlsx)上操作,则可以使用:

 Set GCell = Workbooks("TestBook.xlsx").Worksheets("Sheet2").Cells.Find(SearchText).Offset(1) 

请注意,我已经避免使用select。 这对你来说可能不是问题,但是如果你通过数千行search并做出许多replace,它可以大大加快你的代码。

试试下面的代码=你可以将textvaluevariables的值改为你想要search的值。

 Sub newRow() Dim textvalue As String textvalue = "Original" Cells.Find(What:=textvalue, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.offset(rowOffset:=1, columnOffset:=0).Activate ActiveCell.EntireRow.Insert End Sub