macros列表包含值“代码:”的单元格的行数

我有一个表格“A”包含值。 我想收集一个新的工作表中的行号findstring“代码:”。 我想写VBA代码来实现这一点。 例如 :

Sheet1:

RowNo | Column A ------|--------- 1 | Hello World 2 | Good morning 3 | Code: 46904A65 4 | Excuse 5 | Code: 4523S45 

输出表:

 RowNo | Column A ------|--------- 1 | 3 2 | 5 

说明:在表单1的第3和第4行中findstring“代码:”。因此输出表单包含其中的行号。

以下代码不起作用:

 Set stTempData = Sheets("Output Sheet") stTempData.Select Set mainsheet = Sheets("Sheet1") mainsheet.Select k = Range("a65536").End(xlUp).Row i = 1 Do While i < k Set r = stTempData.Range("a65536").End(xlUp).Offset(1, 0) If InStr(ActiveSheet.Cells(i, 0).Value, "Code:") > 0 Then r.Offset(i, 0).Value = ActiveCell.Row - 1 j = i r.Offset(j + 1, 1).Value = ActiveCell.Row - 2 End If i = i + 1 Loop 

把它放在输出表中的A1中:

 =IFERROR(AGGREGATE(15,6,ROW(Sheet1!$A$1:$A$5)/(ISNUMBER(SEARCH("Code",Sheet1!$A$1:$A$5))),ROW(1:1)),"") 

并抄下来,直到你得到空白。


至于你的代码:

没有列0所以你的Cells()需要改为1.你也不想偏移r 。 还有一件事你有activesheet和activecell扔掉它:

 Set stTempData = Sheets("Output Sheet") stTempData.Select Set mainsheet = Sheets("Sheet1") mainsheet.Select k = Range("a65536").End(xlUp).Row i = 1 Do While i <= k Set r = stTempData.Range("a65536").End(xlUp).Offset(1, 0) If InStr(mainsheet.Cells(i, 1).Value, "Code:") > 0 Then r.Value = mainsheet.Cells(i, 1).Row End If i = i + 1 Loop