在表中search栏中的值; 如果发现复制前两列值和列标题

我没有使用VBA的经验,但在工作中我被问到解决这个问题的方法。
我有一张表格,里面有这样的数据:

姓名…..date修改 ……. 01/01/13 …… 01/02/13 …….. 01/03/13

乔………… 02/05/13 ………晚

最高date值是应付账单date和(1/05/13)date值是账单更改的date。 我需要search每个date列(1 / 1-1 / 3)和单词“迟到”,如果发现我需要复制并粘贴更改的名称和date和date到另一个工作表。 在这个例子中,我将复制这些值:

乔…….. ……… 13年2月5日13年1月1日

进入另一张纸。 我将不胜感激任何帮助。

你不需要使用VBA。 使用INDEX和MATCH函数查找延迟的位置。

稍后,您可以过滤以仅显示1 / 1-1 / 3列中晚些行的行。

适应你认为合适的,但这里是基本的想法。

在“更改date”和2013年1月1日之间插入一个列,并将其命名为“到期date”(现在是c列)。

如果单元格C2input=IFERROR(INDEX($D$1:$F2,1,MATCH("Late",$D2:$F2,0)),"")

拖放到列C中

这应该是这样的

试试这个……在“C”中search单词“Late”,如果它在那里复制整行并粘贴到一个新的工作表中,它将循环所有的数据并粘贴所有的行在新的工作表后期。 这并不是你所需要的,但是一个很好的起点。

 Dim j As Integer Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("sheet1") Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("sheet2") For j = 2 To ws1.Range("C65536").End(xlUp).row If ws1.Cells(j, 2) = "late" Then ws1.Rows(j).Copy ws2.Rows(ws2.Cells(ws2.Rows.Count, 2).End(xlUp).row + 1) Next j