2016-10-09 5 views
4

In Excel VBA, versuche ich den "arabischen Namen eines Monats" in eine Variable, und ich fand einen Weg. Aber mein Weg benötigt eine Pufferzelle, um Werte einzufügen, das Zellenformat zu ändern, den Textwert der Zelle abzurufen und diesen Wert dann in eine Variable einzufügen.Wie bekomme ich arabische Monatsnamen mit Excel VBA

Hier ist mein VBA-Code:

Sub GetArabicName() 
     Sheets("Sheet1").Cells(1, 1).Value = date() 
     Sheets("Sheet1").Cells(1, 1).NumberFormat = "[$-10A0000]mmmm;@" 
     ArabicMonth = Sheets("Sheet1").Cells(1, 1).Text 
     MsgBox ArabicMonth & " The Arabic Name of the Month" 
    End Sub 

Gibt es einen einfacheren Weg, dies mit VBA zu tun und ohne die Pufferzelle mit? Auch, wie kann ich die MsgBox Anzeige den arabischen Wert nicht "?????"

Vielen Dank im Voraus.

Antwort

3

Ich kann nicht die Notwendigkeit, dass die Helferzelle entfernen, aber bekommt diese eine Nachricht vom Typ Box Text anzuzeigen:

Public Declare Function MessageBoxU Lib "user32" Alias "MessageBoxW" _ 
          (ByVal hwnd As Long, _ 
          ByVal lpText As Long, _ 
          ByVal lpCaption As Long, _ 
          ByVal wType As Long) As Long 

Sub GetArabicName() 
    Dim ArabicMonth As String 
    With Sheets("Sheet1").Cells(1, 1) 
     .Value = Date 
     .NumberFormat = "[$-10A0000]mmmm;@" 
     .Font.Name = "Arial Unicode MS" 
     ArabicMonth = .Text 
    End With 
    MessageBoxU 0, StrPtr(ArabicMonth), StrPtr("MsgBox Substitute"), 0 
    MsgBox ArabicMonth & " The Arabic Name of the Month" 
End Sub 

enter image description here

Übernommen aus:

Renaud Bompuis

EDIT # 1:

Aufgrund des sehr guten Vorschlag von Axel Richter, entfernt diese die Notwendigkeit für die Helferzelle:

Sub GetArabicNames_II() 
    Dim ArabicMonth As String 
    ArabicMonth = Application.WorksheetFunction.Text(Date, "[$-10A0000]mmmm;@") 
    MessageBoxU 0, StrPtr(ArabicMonth), StrPtr("MsgBox Substitute"), 0 
End Sub 
+3

mit 'ArabicMonth = Application.Text (Datum,„[$ -10A0000] mmmm ")' gibt es keine Notwendigkeit für die Pufferzelle "A1". –

Verwandte Themen