ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Cell search, match part of string (https://www.excelbanter.com/excel-programming/386360-cell-search-match-part-string.html)

A1pro

Cell search, match part of string
 
I've got two spreadsheets that have a column with the same data, more or less.
i.e. spreadsheet 1 has "Gloucester" and the spreadsheet 2 "Gloucester "

so i've got this bit of macro
where sitename comes from spreadsheet 1 and is a string and
osheet.Range("A" & counter) comes from spreadsheet 2.

For counter = 1 To 50 Step 1

If sitename = osheet.Range("A" & counter) Then

do stuff

Next counter

The problem is that with the example above, i.e. spreadsheet 1 has
"Gloucester" and the spreadsheet 2 "Gloucester ", the if will never be true

Is there any way of getting around this.

Maybe removing the empty spaces at the end of a cell?

TIA

A1pro

Cell search, match part of string
 
trim(sitename) does the trick

google is my friend I guess

"A1pro" wrote:

I've got two spreadsheets that have a column with the same data, more or less.
i.e. spreadsheet 1 has "Gloucester" and the spreadsheet 2 "Gloucester "

so i've got this bit of macro
where sitename comes from spreadsheet 1 and is a string and
osheet.Range("A" & counter) comes from spreadsheet 2.

For counter = 1 To 50 Step 1

If sitename = osheet.Range("A" & counter) Then

do stuff

Next counter

The problem is that with the example above, i.e. spreadsheet 1 has
"Gloucester" and the spreadsheet 2 "Gloucester ", the if will never be true

Is there any way of getting around this.

Maybe removing the empty spaces at the end of a cell?

TIA


Vergel Adriano

Cell search, match part of string
 
Hi,

Maybe the following would give you some ideas

1. To ignore leading and trailing spaces:

If trim(sitename) = trim(osheet.Range("A" & counter))

2. To apply #1 AND ignore the case

If ucase(trim(sitename)) = ucase(trim(osheet.Range("A" & counter)))

3. If you want to ignore only the spaces at the end of the string, use Rtrim
and if you want to ignore only the spaces at the beginning, use Ltrim.




--
Hope that helps.

Vergel Adriano


"A1pro" wrote:

I've got two spreadsheets that have a column with the same data, more or less.
i.e. spreadsheet 1 has "Gloucester" and the spreadsheet 2 "Gloucester "

so i've got this bit of macro
where sitename comes from spreadsheet 1 and is a string and
osheet.Range("A" & counter) comes from spreadsheet 2.

For counter = 1 To 50 Step 1

If sitename = osheet.Range("A" & counter) Then

do stuff

Next counter

The problem is that with the example above, i.e. spreadsheet 1 has
"Gloucester" and the spreadsheet 2 "Gloucester ", the if will never be true

Is there any way of getting around this.

Maybe removing the empty spaces at the end of a cell?

TIA


joel

Cell search, match part of string
 
Try this
If sitename = osheet.clean(Range("A" & counter)) Then

"A1pro" wrote:

I've got two spreadsheets that have a column with the same data, more or less.
i.e. spreadsheet 1 has "Gloucester" and the spreadsheet 2 "Gloucester "

so i've got this bit of macro
where sitename comes from spreadsheet 1 and is a string and
osheet.Range("A" & counter) comes from spreadsheet 2.

For counter = 1 To 50 Step 1

If sitename = osheet.Range("A" & counter) Then

do stuff

Next counter

The problem is that with the example above, i.e. spreadsheet 1 has
"Gloucester" and the spreadsheet 2 "Gloucester ", the if will never be true

Is there any way of getting around this.

Maybe removing the empty spaces at the end of a cell?

TIA


Tom Ogilvy

Cell search, match part of string
 
Joel,

Just a heads up -

Clean only does non-printing characters (and i suspect only those below
128).

a = " a "
? len(a)
3
? len(Application.Clean(a))
3
? len(trim(a))
1

(it doesn't clean chr(160), "nbsp" often copied in from the internet. as an
example)

--
Regards,
Tom Ogilvy


"Joel" wrote:

Try this
If sitename = osheet.clean(Range("A" & counter)) Then

"A1pro" wrote:

I've got two spreadsheets that have a column with the same data, more or less.
i.e. spreadsheet 1 has "Gloucester" and the spreadsheet 2 "Gloucester "

so i've got this bit of macro
where sitename comes from spreadsheet 1 and is a string and
osheet.Range("A" & counter) comes from spreadsheet 2.

For counter = 1 To 50 Step 1

If sitename = osheet.Range("A" & counter) Then

do stuff

Next counter

The problem is that with the example above, i.e. spreadsheet 1 has
"Gloucester" and the spreadsheet 2 "Gloucester ", the if will never be true

Is there any way of getting around this.

Maybe removing the empty spaces at the end of a cell?

TIA



All times are GMT +1. The time now is 12:06 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com