0

我尝试在网站上搜索解决方案,但找不到完全匹配的。我正在尝试找出将执行以下操作的 VBA 代码:

  1. 搜索指定的列
  2. 找到所有匹配的值(未指定)
  3. 复制所述匹配值的行
  4. 将它们放入新的工作表或工作簿(最好是工作簿)

这是我的问题。指定行中的值可以是 300 多个唯一值中的 1 个,因此在 VBA 代码中指定每个值将是一场噩梦。

我知道按字母顺序过滤指定的列会起作用,但是我如何告诉宏在每个组的末尾停止并将其复制到新工作表?基本上我会如何说“如果下一个值与当前值不匹配,则开始一本新书”?(即:向下搜索C列并复制所有包含“Bat”的行,然后复制到新书,然后向下搜索C列并复制所有包含“Car”的行,然后复制到新书)

任何帮助将不胜感激!

4

1 回答 1

0

假设您的数据是分组的,即不是这样的:

batman
batman
robin
robin
batman

但反而:

batman
batman
batman
robin
robin

然后这将抓取所有连续的块并将它们推到自己的工作簿中。它还假设所有内容都在 A 列中,因此如果需要,请更改它。

Sub grabber()
Dim thisWorkbook As Workbook
Set thisWorkbook = ActiveWorkbook
last = 1
For i = 1 To 18 'my sample had 18 rows, replace it with how many you have
If Range("A" & i) <> Range("A" & (i + 1)) Then
Range("A" & last & ":A" & i).Copy
Set NewBook = Workbooks.Add
NewBook.Sheets("Sheet1").Range("A1").PasteSpecial xlPasteValues
last = i + 1
thisWorkbook.Activate
End If
Next i
End Sub
于 2013-08-16T04:58:22.927 回答