a string to an integer


P

Philosophaie

I have a string:

string(3) = "543"

I try to change it to an integer:

int = cint(string(3))

It gives me a 'Type Mismatch' Error.

Maybe there may be spaces before of after the numbers but does that matter?

How do I change from a string to an integer?
 
Ad

Advertisements

P

Philosophaie

There were no spaces. I checked. Why else am I getting 'Type Mismatch' Error
and not letting me use cint to change from a string?
 
S

Sam Wilson

I've just done this:

Sub test()

Dim s As String
s = "543"

Dim i As Integer
i = CInt(Trim(s))

MsgBox i

End Sub


and it works. Have you ot an apostrophe/single quote ' preceeding the 5?
 
D

Dave Peterson

Don't use String and Int as variable names.

String is a VBA function and data type.
Int is a VBA function.


Dim myString(1 To 3) As String
Dim myInt As Long
myString(3) = "543"
myInt = CInt(myString(3))

Personally, I wouldn't use "as integer" or cInt(). I'd use "As long" and
clng().
 
P

Philosophaie

I am using what is already in the cell from "Left and Right" operations to a
bunch of similar data strings. I have ran my own trimming operation thru

if left(a,1)="-" then a=Right(a,2)

but it will still not let me take the cint or cdbl of any of the data.

So the quote sign is irrelevant.
 
Ad

Advertisements

S

Sam Wilson

Ok... another approach - try

msgbox len(str) * " """ & str & """"

which should display

3 "543"

to make sure there are no extra characters in there.

Sam
 
P

Philosophaie

I typed verbatum:

msgbox len(str) * " """ & str & """"

even that gave me a 'Type Mismatch error'
 
S

Sam Wilson

msgbox len(str) & " """ & str & """"

Sorry, my mistake. Change str for whatever string it is you're trying to
convert.

Sam
 
C

Charlie

Also String is an intrinsic function in VB!

Use Option Explicit at the top of your module and make sure you dim all of
your variables using names that are not intrinsic functions.
 
Ad

Advertisements

C

Charlie

Type mismatch probably comes from the fact you are using "int"

int = CInt()

Int is an intrinsic function in VB. You shouldn't name a variable "int"

As for the other problem use Mid not Right to get the remaining portion of
the string

if left(a,1)="-" then a=mid(a,2)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top