如何查找单元格是否包含特定位置的特定字符?

时间:2013-08-28 16:15:00

标签: excel vba excel-vba

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

所以如果给出这些条目列表:

NA9PK99LJ
NA9PK99LK
XX9P109LH
XX9P109XF
XX849P01D
NA8419PZ3
XX9P109VK

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

我对excel vba有点新手,但我被告知这应该是可行的。

非常感谢任何帮助!

由于

克里斯

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我所知道的最简单的方法是使用带有通配符的Find()。您可以做的是在执行以下操作时使用宏录制器:

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

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