![]() |
|
|
|
#1
|
|||
|
|||
|
Is it possible to search through non-distinctive data using VBA?
For example: Worksheet "A" Column A A1 A2 A3 A4 A5 Worksheet "B": Column A | Column B | Column C 1/1/2014 | A1 | COMPLETE 1/2/2014 | A2 | STARTED 1/3/2014 | A3 | STARTED 1/4/2014 | A4 | COMPLETE 1/5/2014 | A3 | COMPLETE I want to be able to search through Worksheet "B" for every value listed in Worksheet "A". If the value is found, I want the information listed in each row from Worksheet "B" into Worksheet "C". In this case, I should have 2 rows of information for "A1". I haven't started on the code yet but I am getting lost in the logic with creating a loop to continue to search for "A1" until all values have been found, copied, and pasted, and then search for A2, A3.. etc. Is this possible to do? Thanks. Last edited by abautwag; 04-08-2014 at 11:52 AM. Reason: Formatting was off ... |
|
#2
|
||||
|
||||
|
Yes, it's quite possible, but I don't see why you'd expect two rows on Sheet C for 'A1', when that value only appears once on Sheet B.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#3
|
|||
|
|||
|
My mistake - I meant to write A3. But the case is all the same. How can this be done?
Last edited by abautwag; 04-09-2014 at 08:47 AM. |
|
#4
|
||||
|
||||
|
Try:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim xlWkSht As Worksheet, ArrData As String, StrMatch
Dim LRow As Long, i As Long, j As Long, k As Long
With ThisWorkbook
Set xlWkSht = .Worksheets("Sheet3")
k = xlWkSht.UsedRange.Cells.SpecialCells(xlCellTypeLastCell).Row
If k = 1 Then
With .Worksheets("Sheet2").UsedRange
xlWkSht.Cells(k, 1) = .Cells(1, 1)
xlWkSht.Cells(k, 2) = .Cells(1, 2)
xlWkSht.Cells(k, 3) = .Cells(1, 3)
End With
End If
With .Worksheets("Sheet1").UsedRange
LRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 1 To LRow
ArrData = ArrData & .Cells(i, 1).Text & "|"
Next
End With
With .Worksheets("Sheet2").UsedRange
LRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 0 To UBound(Split(ArrData, "|"))
StrMatch = Split(ArrData, "|")(i)
For j = 1 To LRow
If .Cells(j, 2).Text = StrMatch Then
k = k + 1
xlWkSht.Cells(k, 1) = .Cells(j, 1)
xlWkSht.Cells(k, 2) = .Cells(j, 2)
xlWkSht.Cells(k, 3) = .Cells(j, 3)
End If
Next
Next
End With
End With
Set xlWkSht = Nothing
Application.ScreenUpdating = True
End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Search for date and then apply mutliple search criteria in huge dataset | maxtymo | Excel | 2 | 12-01-2013 04:52 AM |
| Looking for Windows Search app with ability to search by content | gopher_everett | Office | 1 | 02-28-2013 09:23 PM |
Data table search function
|
omtinole | Excel Programming | 1 | 07-13-2012 10:03 PM |
| Using data entered in prompt to search database table | BluRay | Word | 1 | 03-25-2011 01:47 AM |
| Search and Replace - Clear Search box | JostClan | Word | 1 | 05-04-2010 08:46 PM |