ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Problem using & (https://www.excelbanter.com/excel-programming/447749-problem-using.html)

Daniel Uribe

Problem using &
 
I made a simple macro that would simply concatenate (using &) two values and directly copy them into another cell.

I did not declared a variable for it, I just wrote this

wsO.Cells(b, 2) = wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)

(I later declared a variable as String equal to wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2) and the result is the same)

Being wsO and wsI different workbooks.

Everything seems to work, until I check some values and the following happens:

In some of the resulting values (some are fully numeric and some alphanumeric) the last digits are rounded to 0, for example:
wsI.Cells(a + 1, 1) wsI.Cells(a + 1, 2) wsO.Cells(b, 2)
6705935 000011288 6705935000011280
7220390 000RSM069 7220390000RSM069
7220390 000RSM070 7220390000RSM070
34547272 000000777 34547272000000700
43986229 000000776 43986229000000700
71699014 000RSM072 71699014000RSM072
71699014 000RSM074 71699014000RSM074
71750058 000000781 71750058000000700
800024702 000000462 800024702000000000

Is this an Excel VBA bug? Or is there a way to correct it?

Thanks,

Daniel

isabelle

Problem using &
 
hi Daniel,

excel is limited to 15 digits
the way around this is to put "'" & ( text cote) before concatenate

wsO.Cells(b, 2) = "'" & wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)

--
isabelle



Le 2012-11-28 17:45, Daniel Uribe a écrit :
I made a simple macro that would simply concatenate (using &) two values and directly copy them into another cell.

I did not declared a variable for it, I just wrote this

wsO.Cells(b, 2) = wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)

(I later declared a variable as String equal to wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2) and the result is the same)

Being wsO and wsI different workbooks.

Everything seems to work, until I check some values and the following happens:

In some of the resulting values (some are fully numeric and some alphanumeric) the last digits are rounded to 0, for example:
wsI.Cells(a + 1, 1) wsI.Cells(a + 1, 2) wsO.Cells(b, 2)
6705935 000011288 6705935000011280
7220390 000RSM069 7220390000RSM069
7220390 000RSM070 7220390000RSM070
34547272 000000777 34547272000000700
43986229 000000776 43986229000000700
71699014 000RSM072 71699014000RSM072
71699014 000RSM074 71699014000RSM074
71750058 000000781 71750058000000700
800024702 000000462 800024702000000000

Is this an Excel VBA bug? Or is there a way to correct it?

Thanks,

Daniel


Daniel Uribe

Problem using &
 
On Wednesday, November 28, 2012 6:44:55 PM UTC-5, isabelle wrote:
hi Daniel,



excel is limited to 15 digits

the way around this is to put "'" & ( text cote) before concatenate



wsO.Cells(b, 2) = "'" & wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)



--

isabelle







Le 2012-11-28 17:45, Daniel Uribe a écrit :

I made a simple macro that would simply concatenate (using &) two values and directly copy them into another cell.




I did not declared a variable for it, I just wrote this




wsO.Cells(b, 2) = wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)




(I later declared a variable as String equal to wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2) and the result is the same)




Being wsO and wsI different workbooks.




Everything seems to work, until I check some values and the following happens:




In some of the resulting values (some are fully numeric and some alphanumeric) the last digits are rounded to 0, for example:


wsI.Cells(a + 1, 1) wsI.Cells(a + 1, 2) wsO.Cells(b, 2)


6705935 000011288 6705935000011280


7220390 000RSM069 7220390000RSM069


7220390 000RSM070 7220390000RSM070


34547272 000000777 34547272000000700


43986229 000000776 43986229000000700


71699014 000RSM072 71699014000RSM072


71699014 000RSM074 71699014000RSM074


71750058 000000781 71750058000000700


800024702 000000462 800024702000000000




Is this an Excel VBA bug? Or is there a way to correct it?




Thanks,




Daniel




Thanks for the help, I tried it and did not work however.

Claus Busch

Problem using &
 
Hi Daniel,

Am Wed, 28 Nov 2012 14:45:31 -0800 (PST) schrieb Daniel Uribe:

wsO.Cells(b, 2) = wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)


first format wsO.Range("B1:Bn") as text:

wshO.Range("B1:B" & LRow).NumberFormat = "@"


Regards
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

joeu2004[_2_]

Problem using &
 
"Daniel Uribe" wrote:
On Wednesday, November 28, 2012 6:44:55 PM UTC-5, isabelle wrote:
excel is limited to 15 digits
the way around this is to put "'" & ( text cote) before concatenate
wsO.Cells(b, 2) = "'" & wsI.Cells(a + 1, 1) & wsI.Cells(a + 1, 2)

[....]
I tried it and did not work however.


What do you mean by "did not work"?

Give concrete examples of what does work (if any) and what does not work.


"Daniel Uribe" wrote previously:
wsI.Cells(a + 1, 1) wsI.Cells(a + 1, 2) wsO.Cells(b, 2)
6705935 000011288 6705935000011280
7220390 000RSM069 7220390000RSM069


I wonder if the problem is: those cells with numeric values with leading
zeros (e.g. 000011288) have the Custom format 000000000. In that case, the
following might be necessary:

wsO.Cells(b, 2) = "'" & wsI.Cells(a + 1, 1).Text & wsI.Cells(a + 1, 2).Text

There is no need to format the wsO.Cells(b, 2) as Text ("@"). But it would
not hurt to do so. In that case, you would not need ``"'" &``. But you
still might need wsI.Cells(a + 1, 1).Text, for example.



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

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