0

我正在尝试构建一个宏,它将以特定顺序在给定单元格中搜索特定字符组合,然后将其粘贴到另一个页面。我需要它来搜索包含“9P”的 9 个字母/数字组合的单元格,但前提是它是第三个和第四个数字/字母。

因此,如果给出这些条目列表:

NA9PK99LJ
NA9PK99LK
XX9P109LH
XX9P109XF
XX849P01D
NA8419PZ3
XX9P109VK

我只希望它复制前四个和最后一个条目,然后从另一页的 A2 开始垂直越过这些。

我是一个擅长 vba 的新手,但有人告诉我这应该是可行的。

任何帮助将非常感激!

谢谢

克里斯

4

2 回答 2

1

希望这会有所帮助,可能已经过火了

Sub Solution()

Dim search As String, start As Integer, lastaddress As String, toworksheet As String

lastaddress = "A2" 'cell location on the result sheet
search = InputBox("Enter Search Critera") 'enter search critera
start = InputBox("Start from") 'integer of where to search in the string, not zero index
toworksheet = InputBox("Put results into which spreadsheet") 'worksheet name to put results

'select the cell you want to start your search from and it will continue till it reaches a    blank cell
Do While ActiveCell.Text <> ""

'Performs the test
If Mid(ActiveCell.Text, start, Len(search)) = search Then

'adds the entry to the results sheet
Worksheets(toworksheet).Cells.Range(lastaddress).Value = ActiveCell.Text
'updates the address to the next line in your results sheet
lastaddress = Worksheets(toworksheet).Cells.Range(lastaddress).Offset(1, 0).Address
End If

'goes to next item in list
ActiveCell.Offset(1, 0).Select
Loop

End Sub
于 2013-08-28T16:45:19.480 回答
0

我知道的最简单的方法是将 Find() 与通配符一起使用。您可以做的是在执行以下操作时使用宏记录器:

  • 启动宏记录器
  • 选择要搜索的范围
  • 执行 Ctrl + F 并输入??9P?????搜索词
  • 选择框中的所有结果
  • 关闭框,复制单元格并将它们粘贴到您想要的位置
  • 停止宏记录器

这将为您提供代码的主要基础,然后您可以对其进行微调,以便它满足您的需求。这也是您了解 VBA 工作原理的一个很好的练习。

于 2013-08-28T16:38:29.433 回答