如何在一个列中查找文本值并将值复制/填充到新列中,直到找到第二个值,然后使用vba重复新值

时间:2019-05-03 20:58:00

标签: excel vba

我有一个多页报告,其中每页顶部都包含员工姓名。我想创建一个宏,每天销售时都会复制其名称。每个员工的天数可以有所不同,因此我需要能够确定他们在报表上的天数范围,并为每行复制其名称。

在此示例中,我需要在从4/1到4/5的每一行中复制约翰的名字,黛比的名字代表她销售的日子,玛丽的名字代表她销售的日子。

我该怎么做?

按联系人的每周销售额

        Sales for   John

日期销售美元
2019年4月1日100
2019年4月2日350
2019年4月3日200
2019年4月4日400
4/5/2019 500

        Sales for   Debbie

日期销售美元
2019年4月1日250
2019年4月3日450
2019年4月5日275

        Sales for   Mary

日期销售美元
2019年4月1日600
2019年4月2日450
2019年4月3日550
4/4/2019 700

2 个答案:

答案 0 :(得分:1)

插入新列B,然后在数据持续时间内使用此公式,最后将公式还原为其返回值。

=IF(A2="", "", INDEX(E:E, MATCH("zzz", E$1:E2)))

代码:

Option Explicit

Sub formatTXTfile()

    With Worksheets("sheet1")

        'create new second column
        .Range("B:B").EntireColumn.Insert

        'reference data area
        With .Range(.Cells(2, "B"), .Cells(.Rows.Count, "A").End(xlUp).Offset(0, 1))

            'populate with dynamic lookup formula
            .Formula = "=if(A2="""", """", index(E:E, match(""zzz"", E$1:E2)))"
            'revert the formulas to the formulas' results
            .Value = .Value

        End With

    End With

End Sub

答案 1 :(得分:0)

使用图像-这将接近您想要的...没有VBA,只有2个公式-手动插入列后

H3单元格的公式

=K3

然后,您可能希望使其成为白色背景上的白色墨水以将其隐藏。

H4单元格的公式

=if(isblank(I4),If(isblank(J4),K4,H3),H3)

然后复制公式,将其沿H列的其余部分计算

您会在H10中看到不需要的文字-但可以轻松解决该问题