Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default myCell = CStr(SomeDigits) ?

I was looking at a spreadhseet populated with a data query. It has a series
of cells that are a code that, in present case, happens to be 5 numeric
digits. As returned by the query, ISTEXT() is TRUE. It is not preceeded by a
'. It is cell formatted General (not Text). But the value in the cell is text
not numeric. Text is OK.

So I'm trying to programatically put this value in a cell in another sheet.
I want it to be ISTEXT(), not proceeded by a ' and cell format General. Just
like the query creates.

I've compared properties of the two cells and nothing is different besides
the type of Value2 being Variant/String in one case and Variant/Double in the
other. Yet just assigning .Value2 = CStr(myStringOfDigits) still results in a
Double in the cell.

Surely if the data query can put a string in the cell as a string, VBA can
do the same??!?

Thanks in advance for any thoughts!
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 523
Default myCell = CStr(SomeDigits) ?

Maybe

dim mystr as string
mystr = cstr(myStringOfDigits)
..value2 = mystr

"Dick Watson" wrote:

I was looking at a spreadhseet populated with a data query. It has a series
of cells that are a code that, in present case, happens to be 5 numeric
digits. As returned by the query, ISTEXT() is TRUE. It is not preceeded by a
'. It is cell formatted General (not Text). But the value in the cell is text
not numeric. Text is OK.

So I'm trying to programatically put this value in a cell in another sheet.
I want it to be ISTEXT(), not proceeded by a ' and cell format General. Just
like the query creates.

I've compared properties of the two cells and nothing is different besides
the type of Value2 being Variant/String in one case and Variant/Double in the
other. Yet just assigning .Value2 = CStr(myStringOfDigits) still results in a
Double in the cell.

Surely if the data query can put a string in the cell as a string, VBA can
do the same??!?

Thanks in advance for any thoughts!

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 82
Default myCell = CStr(SomeDigits) ?

Have you tried formatting the destination cell(s) as Text before you
put the data in them?
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default myCell = CStr(SomeDigits) ?

I think you will have to format the cell as Text. Using A1 and 123 as an
example...

Range("A1").NumberFormat = "@"
Range("A1").Value = 123

--
Rick (MVP - Excel)


"Dick Watson" wrote in
message ...
I was looking at a spreadhseet populated with a data query. It has a series
of cells that are a code that, in present case, happens to be 5 numeric
digits. As returned by the query, ISTEXT() is TRUE. It is not preceeded by
a
'. It is cell formatted General (not Text). But the value in the cell is
text
not numeric. Text is OK.

So I'm trying to programatically put this value in a cell in another
sheet.
I want it to be ISTEXT(), not proceeded by a ' and cell format General.
Just
like the query creates.

I've compared properties of the two cells and nothing is different besides
the type of Value2 being Variant/String in one case and Variant/Double in
the
other. Yet just assigning .Value2 = CStr(myStringOfDigits) still results
in a
Double in the cell.

Surely if the data query can put a string in the cell as a string, VBA can
do the same??!?

Thanks in advance for any thoughts!


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default myCell = CStr(SomeDigits) ?

Nope. Excel is "smarter" than that...

Thanks for posting though.

"Sam Wilson" wrote:

Maybe

dim mystr as string
mystr = cstr(myStringOfDigits)
.value2 = mystr



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default myCell = CStr(SomeDigits) ?

That's what I was hoping to avoid--not for any particular reason besides the
intellectual curiousity that the retrieved query data didn't need Text but
could store the number as text, so why couldn't I?

What I ended up doing was setting the NumberFormat = "@", assigning the
value, then setting back the NumberFormat = "General". Of course, then the
cell error XlNumberAsText played. So then I ended up setting this error to
Ignore = True. Of course, the data saved by the query didn't have that error
supressed, so I was back full circle. I still don't know how they do it and
why the same cannot be done from VBA.

"norie" wrote:

Have you tried formatting the destination cell(s) as Text before you
put the data in them?

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default myCell = CStr(SomeDigits) ?

That's exactly what I ended up doing (more or less, see another posting for
more specifics) but I still wonder how the query gets the number stored as
text, General format, no XlNumberAsText error, no ', and yet it seems
impossible to do the same from VBA.

Thanks for replying.

"Rick Rothstein" wrote:

I think you will have to format the cell as Text. Using A1 and 123 as an
example...

Range("A1").NumberFormat = "@"
Range("A1").Value = 123


  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default myCell = CStr(SomeDigits) ?

Does the entry returned by the query perhaps have a space (or some other
non-visible character) in front or after the number? You should be able to
check with the LEN function. If it is an "invisible" character of some sort,
then this VB code should uncover it...

Sub ShowASCIIvalues()
Dim X As Long
For X = 1 To Len(Selection.Value)
Debug.Print "Position: " & X & " - ASCII value: " & _
Asc(Mid(Selection.Value, X, 1))
Next
End Sub

--
Rick (MVP - Excel)


"Dick Watson" wrote in
message ...
That's exactly what I ended up doing (more or less, see another posting
for
more specifics) but I still wonder how the query gets the number stored as
text, General format, no XlNumberAsText error, no ', and yet it seems
impossible to do the same from VBA.

Thanks for replying.

"Rick Rothstein" wrote:

I think you will have to format the cell as Text. Using A1 and 123 as an
example...

Range("A1").NumberFormat = "@"
Range("A1").Value = 123



  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default myCell = CStr(SomeDigits) ?

Checked that very early on. It is just 5 ASCII characters within 0 .. 9.
Exactly what's in the database.

"Rick Rothstein" wrote:

Does the entry returned by the query perhaps have a space (or some other
non-visible character) in front or after the number? You should be able to
check with the LEN function. If it is an "invisible" character of some sort,
then this VB code should uncover it...

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
ListBox1. add item myCell.entirerow Vikram Dhemare Excel Discussion (Misc queries) 3 April 8th 08 01:49 AM
myCell.Row? Dave Birley Excel Programming 3 April 30th 07 06:46 PM
myCell.Formula application unknown object error orangie Excel Programming 4 March 21st 07 10:17 PM
Problem with leap-frogging myCell Range Dennis Excel Programming 0 December 11th 06 11:36 PM
Value of next visible mycell within a rng Rasmus[_3_] Excel Programming 8 April 16th 05 01:03 AM


All times are GMT +1. The time now is 08:27 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"