Range function with Arabic Text

  • Thread starter Thread starter elie.constantine
  • Start date 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
 
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
 
Not sure what you are trying to do, but ..
Dim MyRange As Range
Set MyRange=WorkSheets(1).Cells(1,4)

MsgBox MyRange.Value

NickHK
 
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
 
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
 
the problem is not with the x_col variable but it's in the Range
function.

Thx
 
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
 
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
 
Back
Top