找到一个特定的标题并在其上方插入一行并插入一些值

时间:2017-04-12 11:32:55

标签: excel-vba vba excel

我正在尝试找到一个特定的标题并尝试在其上方插入一行并插入一些值

例如在(A1:Q1)中称为“系统”的表格,如果它在G列中找到标题为“受让人”,它应该在它上面的一行惰性,并将值粘贴为G列中的“用受让人打开”

以同样的方式检查整个G列,如果找到下一个受让人,则应在其上方插入一行,并在G栏中将值粘贴为“与客户一起打开”

任何人都可以帮助我使用vba代码

1 个答案:

答案 0 :(得分:0)

对于查询的第一部分(在标题上方插入一行):

如果这只是一张纸,你可以做的一件事是命名标题所在的范围(因此,如果第1行是所有标题通常所在的位置,比如说A1:Q1,那么名字A1: Q1作为HeaderRow或类似的)。这样做的好处是,当您插入行时,您不必添加任何代码来重新分配标题行。现在,您不是查看整个工作表,而是将搜索重点放在单个定义的范围内。

完成此操作后,只需使用For Each [cell] in [range].Cells遍历每个单元格,并确定单元格的内容是否是您要查找的内容。如果是这样,您可以插入上面的行,并从目标单元格填充[cell].Row - 1的单元格。

它看起来像这样:

Dim InternalCell as Range, myNamedRange as Range
Dim SearchTerm as String
SearchTerm = "assignee"
Set myNamedRange.Cells = ThisWorkbook.Sheets("System").Range("HeaderRows")

For Each InternalCell In myNamedRange.Cells
If InternalCell.Value = SearchTerm Then
myNamedRange.Insert Shift:=xlDown
ThisWorkbook.Sheets("System").cells(MyNamedRange.Row - 1, InternalCell.Column).Value = "Open with assignee"
End If
Next InternalCell