PDA

View Full Version : มีวิธีที่ พิมพ์ ชื่อเดือน ในช่อง E7 แล้วช่อง F7 ขึ้นชื่อเดือนก่อนหน้าหรือเปล่าครับ



zv735
1 Jun 2007, 01:46
สวัสดีครับผม
มีวิธีที่ พิมพ์ ชื่อเดือน ในช่อง E7 แล้วช่อง F7 ขึ้นชื่อเดือนก่อนหน้า หรือเปล่าครับ


ขอบคุณมากมากครับผม

อรวีร์
1 Jun 2007, 08:40
ทดลองใส่สูตรที่ F7
=TEXT( DATEVALUE("1 " & E7) -1 , "[$-1010409]mmmm" )

zv735
1 Jun 2007, 17:15
ยอดเยี่ยมมากครับ
ขอบคุณอาจารย์อรวีร์มากมากครับผม

Nongmod
5 Jun 2007, 11:51
รบกวนอาจารย์ ตอบเป็นความรู้หน่อยครับ [$-1010409] หมายความว่าอย่างไรครับผม

สมเกียรติ
6 Jun 2007, 11:31
ผมก็อยากทราบเหมือนกันว่า [$-1010409] คืออะไร คิดกันมาอย่างไร เคยลองค้นหาคำตอบมาหลายปีแล้วก็ยังไม่ได้

:(

อรวีร์
6 Jun 2007, 15:03
เลข 01010409 เราเรียกว่า Language Identifier ค่ะ
ลองดูที่นี่ค่ะ
http://msdn2.microsoft.com/en-us/library/ms776294.aspx
โดย Language Identifier แบ่งเป็นเลขฐาน 16 สองส่วนคือ
4 ตัวแรกเรียกว่า high word เป็นตัวกำหนด กลุ่มย่อย(SubLanguage)
4 ตัวหลังเรียกว่า low word เป็นตัวกำหนด กลุ่มหลัก(Primary Language)

ลองค้นหาคำว่า thai จะพบว่าเลขฐาน 16 จำนวนสี่ตัวหลังคือ 041e
สรุปคือ ถ้าเดือนรูปแบบภาษาไทย ใช้แบบนี้ค่ะ
=TEXT(B4,"[$-0101041e] mmmm")

ถ้าเดือนรูปแบบภาษาอังกฤษ(แบบอเมริกา) ใช้แบบนี้ค่ะ
=TEXT(B4,"[$-01010409] mmmm")

ถ้าเดือนรูปแบบภาษาเกาหลี ใช้แบบนี้ค่ะ
=TEXT(B4,"[$-01010412] mmmm")

สมเกียรติ
6 Jun 2007, 15:20
ขอบคุณครับ

อรวีร์
6 Jun 2007, 23:31
Language Identifier นั้น ใช้ในการอ้างถึงภาษาต่างๆใน Windows API ด้วยค่ะ
พอดีอรวีร์เพิ่งตอบเกี่ยวกับการเขียนโปรแกรมเปลี่ยน Keyboard เป็นแบบภาษาไทย และภาษาอังกฤษ โดยเขียนโปรแกรมลักษณะนี้ค่ะ

Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

Sub Set_Keyb_Thai( )
LoadKeyboardLayout ("0000041e" & Chr(0)), &H1
End Sub

Sub Set_Keyb_Eng( )
LoadKeyboardLayout ("00000409" & Chr(0)), &H1
End Sub

เมื่อจะเปลี่ยนเป็นแบบ ภาษาไทย ก็เรียก Set_Keyb_Thai ให้ทำงาน
จะเห็นว่าใช้ 041e สำหรับภาษาไทย