Range function with Arabic Text

  • Thread starter elie.constantine
  • Start date
E

elie.constantine

Hello

I have in an Excel sheet a cell A1 that contains arabic text. When I
try to use Range("A1") function I get a "Type Mismatch" error. While
debugging the code I get "????????" as a value for Range("A1").

Could somebody help me please.

Thanks
 
N

NickHK

The VBE is pretty much tied to the OS language. So if you do not have an
Arabic system, so you will never be able to see the real value, say in the
Debug window or with Intellisense.
However, VBA can work with various langauge.
What is your function signature ?

NickHK
 
N

NickHK

Not sure what you are trying to do, but ..
Dim MyRange As Range
Set MyRange=WorkSheets(1).Cells(1,4)

MsgBox MyRange.Value

NickHK
 
E

elie.constantine

Hi Nick

I am trying to read cells values then build an insert statement to
insert the data into an oracle database. The procedure is working
properly for English text in the cells.
------------------------------------------------------------------------------------------------------------------------
x_row = 0

While x_row < 10
x_col1 = Range("A" & CStr(x_row))
x_col2 = Range("B" & CStr(x_row))
x_col3 = Range("C" & CStr(x_row))

x_SQL = "INSERT INTO xxp_temp (inventory_item_id, qty_stk,
item_code) VALUES ("
x_SQL = x_SQL & x_col1 & ","
x_SQL = x_SQL & x_col2 & ","
x_SQL = x_SQL & "'" & x_col3 & "')"

conOracle.Execute x_SQL
x_row = x_row + 1
Wend
 
N

NickHK

How are those 3 "x_col?" variables dimmed ?

I find it easier to work with byte arrays, when dealing with Chinese text on
non-chinese system, to protect against VBA's UNICODE<>ANSI conversion
So, I would assume the same for Arabic text also.

e.g. Dim x_col3() As Byte

Also you need your database set up to accept/expect nchar/nvarchar data.

NickHK
 
E

elie.constantine

the problem is not with the x_col variable but it's in the Range
function.

Thx
 
N

NickHK

How do you know ?
Assuming the text in the cell is valid Arabic text, then that is what you
have in Range("C" & CStr(x_row)).Value, which is held in Unicode.
When you assign it to a VBA string/variant variable, you get conversion. If
your system is not compatible with the source language, you will get "????".
If you a byte array, does it work ?

NickHK
 
E

elie.constantine

Dear Nick

Thank you very much, it worked when I defined it as: Dim x_col1() As
Byte
Whe building the SQL string I had to do it as follows: x_SQL = x_SQL &
CStr(x_col1) & ","

Thanks again
Elie Constantine
 

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