2015-04-20 1 views
2

Я разрабатываю пользовательскую форму vba для excel 2013, в которой я использую английский и персидский текст, проблема в том, что я использую сочетание обоих языков в msgBox, биты текста выходят в неправильном порядке, номер должен отображаться в конце. вот код:.vbmsgBox приглашение представляет собой смесь RTL (персидский) и LTR (английский), но текст отображается в неправильном порядке

Private Sub CommandButton1_Click() 
    MsgBox "نام" & " - " & "نام" & " - " & "VF" & " - " & 52 & " ." _ 
    , 1 + 1048576 + 524288, "نام برگه" 
End Sub 

Часть в двойных кавычках и числе должна поступать из ListBoxes (я просто заменил их здесь с примерами, код ведет себя так же) я попытался интервалом бит из (работает в окнах), переупорядочивая биты и изменяя порядок и порядок настройки msgBox, но результат был таким же. Как это исправить?

+0

Я просто попытался, и кажется, что VBA автоматически выравнивать текст справа, когда у вас есть некоторые фарси. Я вставил 'Chr (13)' после персидской части и порядок соблюден, но текст по-прежнему справа (даже если вы начинаете с английского или не персидского текста) ... – R3uK

ответ

0

Не могли бы вы поместить весь персидский в строку. Есть ли в окне сообщения строка с строкой, а затем окно с сообщением выводит цифры?

Так что было бы что-то вроде

aString = ListBox1.value & "-" & listbox2.Value .... 

msgbox aString & 52 etc... 
+0

Я просто попробовал, все тот же результат , Я не знаю, насколько это было бы полезно, но я также пробовал это: 'Note1 = ListBox4.Text &" - ​​"& ListBox5.Text Note2 =" - "& ListBox6.Text Note3 =" - "& TextBox1 .Text MsgBox Note1 & Note2 & Note3, 1 + 1048576 + 524288, «نام برگه ی جدید» ' Только, чтобы увидеть тот же результат, текст из двух первых списков находится на персидском языке, Listbox6 содержит английский, (VF, MVF like) и текстовое поле содержит номера –

Смежные вопросы