在表中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