Page 1 of 2
Add value in ListBox
Posted: Thu Jan 05, 2012 4:48 am
by ANUSARA
อยากทำให้ข้อมูลที่เรา add ลงใน UserForm1 Page1 ไปขึ้น show ในListBox ของpage2 ของ UserForm1 เมื่อคลิกปุ่ม
Add New Value to Database
เพื่อให้เวลาคลิกเลือกดู ค่าเก่าที่เคย add ข้อมูลไว้ใน Select user value in database
ลองใส่คำสั่งที่ปุ่ม Add New Value to Database แล้วแต่ compile error ค่ะ
รบกวนช่วยดูว่าต้องแก้ไขตรงไหนค่ะ
ขอบคุณนะคะ
แนบไฟล์มาด้วยนะคะ
Re: Add value in ListBox
Posted: Thu Jan 05, 2012 9:53 am
by snasui
สำหรับ ListBox สามารถใช้การ AddItem เข้าไปได้ครับ
การกำหนดค่าให้กับ Object โดยอ้าง Object อื่น ๆ ก็สามารถอ้างถึงโดยตรง ยกตัวอย่างเช่น
ต้องการให้ข้อความใน TextBox2 มีค่าเหมือน TextBox1 สามารถใช้ Statement ตามด้านล่าง
หากต้องการให้ ListBox1 มีข้อความเหมือน TextBox1 สามารถใช้ Statement ตามด้านล่าง
Call นั้นใช้สำหรับการเรียนใช้ฟังก์ชั่นหรือ Procedure จะใช้เช่นตัวอย่างที่แนบคือ Call Userform ไม่ได้ครับ
Re: Add value in ListBox
Posted: Thu Jan 05, 2012 11:04 am
by ANUSARA
ลองใส่ code
TextBox8_Name = ListBox1
ListBox1.AddItem = TextBox8_Name
เพิ่มตามที่แนะนำแล้วค่ะแต่ยังขึ้น compile error ค่ะ และค่าก็ยังไม่แสดงใน ListBox ค่ะ ต้องแก้ไขต่ออย่างไรคะ
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Database")
'check for a name
If Trim(Me.TextBox8_Name.Value) = "" Then
Me.TextBox8_Name.SetFocus
MsgBox "Please enter a name of raw material or chemical"
Exit Sub
End If
'check for a CF
If Trim(Me.TxtBox3.Value) = "" Then
Me.TxtBox3.SetFocus
MsgBox "Please enter value"
Exit Sub
End If
If Not IsNumeric(TxtBox3) Then
MsgBox "Please enter numeric."
Me.TxtBox3.Text = "0.00"
Exit Sub
End If
Answer = MsgBox("Do you want save change?", 1 + 32, "Create record")
If Answer = 1 Then
'find first empty row in database
iRow = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
'copy the data to the database
ws.Cells(iRow, 2).Value = Me.TextBox2.Value
ws.Cells(iRow, 3).Value = Me.TextBox8_Name.Value
ws.Cells(iRow, 4).Value = Me.TxtBox3.Value
ws.Cells(iRow, 5).Value = "kg"
ws.Cells(iRow, 6).Value = Me.TxtBox4_Source.Value
ws.Cells(iRow, 7).Value = Me.TextBox5_Year.Value
ws.Cells(iRow, 8).Value = Me.TextBox6_Location.Value
ws.Cells(iRow, 9).Value = Me.TextBox7_Comment.Value
'clear the data
Me.TextBox8_Name.Value = ""
Me.TxtBox3.Value = ""
Me.TxtBox4_Source.Value = ""
Me.TextBox5_Year.Value = ""
Me.TextBox6_Location.Value = ""
Me.TextBox7_Comment.Value = ""
'TextBox8_Name = ListBox1
'ListBox1.AddItem = TextBox8_Name
'Unload Me
'ElseIf Answer = 2 Then
' Unload Me
'Exit Sub
End If
'If Page1.TextBox8_Name.Value <> "" Then
'With ThisWorkbook.Worksheets("Database")
'Row = .Cells(2, 3).End(xlDown).Row + 1
'.Cells(Row, 3).Value = UserForm1.TextBox8_Name.Value
'End With
'Call UserForm1.ListBox1
'UserForm2.TextBox1.Value = ""
'End If
End Sub
ขอบคุณค่ะ
Re: Add value in ListBox
Posted: Thu Jan 05, 2012 11:09 am
by snasui
ช่วยแก้ Code ให้แสดงเป็น Code ดูวิธีตาม link นี้ครับ
viewtopic.php?f=3&t=1187
และจากที่เขียนมา
ไม่ถูกต้องครับ ลองอ่านที่ผมแนะนำไปใหม่อีกรอบครับ
Re: Add value in ListBox
Posted: Sat Jan 07, 2012 3:51 pm
by ANUSARA
ลองเอา code ListBox1.AddItem = TextBox8_Name ใส่ดูแล้วก็ยังขึ้น compile error อยู่ค่ะ รบกวนช่วยดูด้วยนะคะ ขอบคุณค่ะ
Code: Select all
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Database")
'check for a name
If Trim(Me.TextBox8_Name.Value) = "" Then
Me.TextBox8_Name.SetFocus
MsgBox "Please enter a name of raw material or chemical"
Exit Sub
End If
'check for a CF
If Trim(Me.TxtBox3.Value) = "" Then
Me.TxtBox3.SetFocus
MsgBox "Please enter value"
Exit Sub
End If
If Not IsNumeric(TxtBox3) Then
MsgBox "Please enter numeric."
Me.TxtBox3.Text = "0.00"
Exit Sub
End If
Answer = MsgBox("Do you want save change?", 1 + 32, "Create record")
If Answer = 1 Then
'find first empty row in database
iRow = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
'copy the data to the database
ws.Cells(iRow, 2).Value = Me.TextBox2.Value
ws.Cells(iRow, 3).Value = Me.TextBox8_Name.Value
ws.Cells(iRow, 4).Value = Me.TxtBox3.Value
ws.Cells(iRow, 5).Value = "kg"
ws.Cells(iRow, 6).Value = Me.TxtBox4_Source.Value
ws.Cells(iRow, 7).Value = Me.TextBox5_Year.Value
ws.Cells(iRow, 8).Value = Me.TextBox6_Location.Value
ws.Cells(iRow, 9).Value = Me.TextBox7_Comment.Value
'clear the data
Me.TextBox8_Name.Value = ""
Me.TxtBox3.Value = ""
Me.TxtBox4_Source.Value = ""
Me.TextBox5_Year.Value = ""
Me.TextBox6_Location.Value = ""
Me.TextBox7_Comment.Value = ""
'Unload Me
'ElseIf Answer = 2 Then
' Unload Me
'Exit Sub
End If
'If Page1.TextBox8_Name.Value <> "" Then
'With ThisWorkbook.Worksheets("Database")
'Row = .Cells(2, 3).End(xlDown).Row + 1
'.Cells(Row, 3).Value = UserForm1.TextBox8_Name.Value
'End With
'Call UserForm1.ListBox1
'UserForm2.TextBox1.Value = ""
'End If
'TextBox2.Text = TextBox1.Text
ListBox1.AddItem = TextBox8_Name
End Sub
Re: Add value in ListBox
Posted: Sat Jan 07, 2012 3:55 pm
by snasui
ANUSARA wrote:ลองเอา code ListBox1.AddItem = TextBox8_Name ใส่ดูแล้วก็ยังขึ้น compile error อยู่ค่ะ รบกวนช่วยดูด้วยนะคะ ขอบคุณค่ะ
ก็ไม่ควรจะได้ครับผม
ไม่ได้แนะนำว่าให้ใช้
ListBox1.AddItem = TextBox8_Name ครับ ช่วยอ่านใหม่ช้า ๆ อีกครั้งครับ
Re: Add value in ListBox
Posted: Sat Jan 07, 2012 11:31 pm
by ANUSARA
ลองใช้ code ตามด้านล่าง แต่ค่าที่ไปแสดงใน ListBox แสดงทุกตัวที่พิมพ์เหมือนตัวอักษร 1 ตัวก็แสดง 1 บรรทัดค่ะ และไม่ดึงค่าข้อมูลจาก หน้า databse อยากให้ดึงค่าจาก databse ที่เคยบันทึกมาด้วยค่ะ
Code: Select all
Private Sub TextBox8_Name_Change()
UserForm1.ListBox1.AddItem (UserForm1.TextBox8_Name.Text)
End Sub
ขอบคุณค่ะ
Re: Add value in ListBox
Posted: Sat Jan 07, 2012 11:41 pm
by snasui
หลักการก็ให้ประกาศตัวแปรช่วงข้อมูลแล้วค่อยใช้ For each...Next มาแสดงใน ListBox ครับ
ยกตัวอย่างเช่น
Code: Select all
'...
dim rall as range
dim r as range
with sheets("exam")
set rall = .range("a1", .range("a" & rows.count).end(xlup))
end with
for each r in rall
lisbox1.additem r
next r
'...
'... คือ Code อื่น ๆ เป็นการละไว้ในฐานที่เข้าใจ
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 12:03 am
by ANUSARA
ลองทำแล้วค่ะแต่ไม่แน่ใจว่าเข้าใจตามที่คุณแนะนำหรือไม่ค่ะ และมันขึ้น compile error ที่ Lisbox1.AddItem r ค่ะ อยากรบกวนช่วยแนะนำด้วยนะคะ ไม่ค่อยเข้าใจ VBA เท่าไหร่ค่ะ
Code: Select all
Private Sub TextBox8_Name_Change()
Dim rall As Range
Dim r As Range
With Sheets("database")
Set rall = .Range("C2", .Range("C" & Rows.Count).End(xlUp))
End With
For Each r In rall
Lisbox1.AddItem r
Next r
UserForm1.ListBox1.AddItem (UserForm1.TextBox8_Name.Text)
End Sub
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 12:20 am
by snasui
ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Private Sub TextBox8_Name_Change()
Dim rall As Range
Dim r As Range
With Sheets("database")
Set rall = .Range("C2", .Range("C" & Rows.Count).End(xlUp))
End With
For Each r In rall
ListBox1.AddItem r ' Change lisbox1 to ListBox1
Next r
'UserForm1.ListBox1.AddItem (UserForm1.TextBox8_Name.Text)
End Sub
โดยปกติการนำข้อมูลมาไว้ใน ListBox เพื่อให้เลือกได้ ควรทำที่ UserForm_Initialize Events และเมื่อมีการ Update TextBox8_Name ค่อย Add รายการเข้าไปเพิ่มทีละรายการ (หากต้องการ) สำหรับ Code นี้กรณีที่ TextBox8_Name มีการเปลี่ยนจะมีการเพิ่ม
ชุดข้อมูลเข้าไปอีกครั้ง
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 9:33 am
by ANUSARA
ขอบคุณนะคะ
แต่ทำไมเวลาที่ใส่ค่าไปแล้วค่าที่ไปแสดงใน ListBox ถึงต้องซ้ำกับเดิมที่เคยใส่ไว้ด้วยค่ะ ต้องแก้อย่างไรคะ
เช่น ใส่ค่า Name ครั้งที่ 1 เป็น 1 ค่าที่แสดงใน ListBox จะแสดงค่า 1 เรียงลงมา 3 ตัว ค่ะ
ใส่ค่า Name ครั้งที่ 2 เป็น we ค่าที่แสดงใน ListBox จะแสดงค่า 1 we 1 we เรียงลงมาค่ะ
ใส่ค่า Name ครั้งที่ 3 เป็น s1 ค่าที่แสดงใน ListBox จะแสดงค่า 1 we s1 1 we s1 1 we s1 เรียงลงมาค่ะ มันจะซ้ำกันตามจำนวนครั้งที่ใส่ค่ะ
และถ้าเราอยากให้ค่าใน ListBox มันคงค่ารายการตามName ในdatabase ที่เคย add ค่าไว้เผื่อผู้ใช้อยาก selectค่าได้เลยโดยไม่ต้อง addค่าก่อนถึงจะเห็นค่าข้อมูลเก่าที่เคยaddไว้ ต้องเพิ่ม code อย่างไรคะ
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 9:51 am
by snasui
ที่สงสัยนั้นผมตอบไว้เรียบร้อยแล้วครับตามนี้
snasui wrote:โดยปกติการนำข้อมูลมาไว้ใน ListBox เพื่อให้เลือกได้ ควรทำที่ UserForm_Initialize Events และเมื่อมีการ Update TextBox8_Name ค่อย Add รายการเข้าไปเพิ่มทีละรายการ (หากต้องการ) สำหรับ Code นี้กรณีที่ TextBox8_Name มีการเปลี่ยนจะมีการเพิ่มชุดข้อมูลเข้าไปอีกครั้ง
ดังนั้นสิ่งที่น่าจะเป็นคำถามคือ UserForm_Initialize Events สามารถดูได้จากไหน จะได้เอา Code การ Loop ไปใส่ได้
คำตอบคือให้ดับเบิ้ลคลิกที่ Userform แล้วเลือก Event ตามภาพด้านล่าง จากน้้นนำ Code การ Loop ค่ามาใส่ไว้ ความหมายคือเมื่อมีการ Load Userform ขึ้นมา มันก็จะนำค่าต่าง ๆ ในข้อมูลเป้าหมายมาแสดงใน ListBox ให้เลย
กรณีไปผูก ListBox กับการเปลี่ยนแปลงของ Control อื่น ๆ เช่นที่ทำตัวอย่างมา ก็จะเกิดปัญหาเช่นนั้นแหละครับ เมื่อ Control ตัวอื่น ๆ มีการเปลี่ยนแปลงมันก็จะ Update ListBox ทุกครั้ง จำเป็นต้องเขียน Code ในการดักจับอีกวุ่นวายว่าเมื่อไรจะให้ Update ListBox ฯลฯ
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 7:02 pm
by ANUSARA
ขอบคุณนะคะ
ขอถามเพิ่มนะคะ ถ้าจะทำให้ TextBox ของ Value Source Year Location Comment ขึ้นแสดงค่าตามข้อมูลใน ListBox ที่เลือก ดึงข้อมูลมาจาก Sheet Databaseค่ะ
ได้ลองใช้ code ตามด้านล่างค่ะแต่ขึ้น error ไม่ทราบว่าต้องแก้ไขอย่างไรคะ
Code: Select all
Private Sub ListBox1_Select()
With Worksheets("Database")
TxtBox14.Value = Application.VLookup(Me.ListBox1, .Range("C2:I100"), 4, False)
TxtBox12.Value = Application.VLookup(Me.ListBox1, .Range("C2:I100"), 6, False)
TxtBox11.Value = Application.VLookup(Me.ListBox1, .Range("C2:I100"), 7, False)
TxtBox10.Value = Application.VLookup(Me.ListBox1, .Range("C2:I100"), 8, False)
TxtBox9.Value = Application.VLookup(Me.ListBox1, .Range("C2:I100"), 9, False)
End With
End Sub
และอีก code หนึ่งคือ code ที่จะลบ ข้อมูลจาก ListBox ที่เลือก แล้วกดปุ่ม detete ลองใส่ code ตามด้านล่าง แล้วขึ้น error ค่ะต้องแก้ไขอย่างไรคะ
Code: Select all
Private Sub CommandButton7_Click()
Dim lng As Long
Answer = MsgBox("Are you sure you want to delete data from database?", 4 + 48, "Delete database")
If Answer = 6 Then
lng = Application.Match(ListBox1.Value, Worksheets("Database").Range("C:I"), 0)
Worksheets("Database").Rows(lng).Delete
Unload Me
ElseIf Answer = 7 Then
Unload Me
Exit Sub
End If
End Sub
ขอบคุณมากค่ะ
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 10:23 pm
by snasui
ListBox ไม่มี Event Select ครับ ผมเปลี่ยนเป็น Event Click ให้แล้วตามด้านล่าง, TextBox ก็เขียนเป็น TxtBox เป็นสาเหตุหนึ่งที่ทำให้เกิด Error และ Range สำหรับ Lookup ก็น้อยกว่าคอลัมน์ที่ต้องการนำมาแสดงผล
Code: Select all
Private Sub ListBox1_Click()
With Worksheets("Database")
TextBox14.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 4, False)
TextBox12.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 6, False)
TextBox11.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 7, False)
TextBox10.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 8, False)
TextBox9.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 9, False)
End With
End Sub
Private Sub TextBox14_Change()
TextBox14.Value = Application.VLookup(Me.ListBox1, Worksheets("Database").Range("C2:Z100"), 4, False)
End Sub
สำหรับกรณีการลบ Code ควรจะปรับเป็นด้านล่าง
Code: Select all
'Other code
If Answer = 6 Then
lng = Application.Match(ListBox1.Value, Worksheets("Database").Range("C:C"), 0)
Worksheets("Database").Rows(lng).Delete
Unload Me
ElseIf Answer = 7 Then
'Other code
สังเกตตรง Range จากเดิม Range("C:I") ซึ่งไม่สามารถนำไปใช้กับฟังก์ชั่น Match ได้ครับ
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 11:03 pm
by ANUSARA
code สำหรับการ delete สามารถทำได้แล้วค่ะ แต่ code ด้านล่างนี้ยัง error อยู่ค่ะ ไม่ทราบว่าเป็นเพราะเหตุใดคะ รบกวนด้วยค่ะ ขอบคุณมากค่ะ
Code: Select all
Private Sub ListBox1_Click()
With Worksheets("Database")
TextBox14.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 4, False)
TextBox12.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 6, False)
TextBox11.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 7, False)
TextBox10.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 8, False)
TextBox9.Value = Application.VLookup(Me.ListBox1, .Range("C2:Z100"), 9, False)
End With
End Sub
Private Sub TextBox14_Change()
TextBox14.Value = Application.VLookup(Me.ListBox1, Worksheets("Database").Range("C2:Z100"), 4, False)
End Sub
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 11:07 pm
by snasui
สิ่งที่พบคือช่อง Name เป็น Number บ้างเป็น Text บ้าง ซึ่งไม่ทราบว่าข้อมูลจริงมีลักษณะเป็นอย่างไร หากข้อมูลจริงมี Text บ้าง Number เช่นนี้แล้ว เพื่อให้ง่ายผมแนะนำให้เปลี่ยนข้อมูลต้นแหล่งให้เป็น Text ท้้งหมด เนื่องจากเรากำลังจะนำค่าใน TextBox ไป Lookup และค่าใน TextBox จะเป็น Text เสมอ
Re: Add value in ListBox
Posted: Sun Jan 08, 2012 11:30 pm
by ANUSARA
ขอบคุณค่ะ
คือถ้าช่อง Name ต้องใส่เฉพาะ ตัวอักษร ใช่ไหมคะ ถ้าเป็นคำที่มีทั้งตัวอักษรและตัวเลข จะได้ไหมคะ
ส่วนช่อง Value จะใส่เฉพาะค่าตัวเลขเท่านั้นค่ะ
Re: Add value in ListBox
Posted: Mon Jan 09, 2012 9:29 am
by snasui
ต้องเข้าใจ Text, Number, ตัวเลข, ตัวอักษร ก่อนครับ
- Text จะเป็น ตัวเลขล้วนก็ได้แต่ถูกจัด Format ให้เป็น Text ส่วนตัวเลขผสมตัวอักษรและตัวอักษรล้วนจะถูกจัดให้เป็น Text อยู่แล้ว
- Number จำเป็นที่จะต้องเป็นตัวเลขอย่างเดียวและจัด Format ให้เป็น Number ถ้าจัด Format ให้เป็น Text ก็จะกลายเป็น Text
จากกรณีนี้ผมเข้าใจว่า Name จะมีการคีย์ตัวเลขบ้าง ตัวอักษรบ้าง ปนกันบ้าง แต่ควรจะมี Format เป็น Text ไม่ใช่มี Format ผสมกัน และหากเป็นเช่นนั้น ควรจัด Format ในช่อง Name ให้เป็น Text เพราะจะได้ง่ายต่อการ Lookup จาก TextBox ที่มีสถานะเป็น Text เนื่องจากการ Lookup จะดูการจัด Format เป็นสำคัญ เราไม่สามารถ Lookup ข้าม Format กันได้
ตัวอย่างการจัด Format ให้เป็น Text ด้วย Manual
คลุมช่อง Name > คลิกขวา > Format Cells... > ที่แถบ Number เลือกเป็น Text
แต่หากกรณีต้องการจะใช้ Format ในช่อง Name ผสมกันไปเช่นนั้นจำเป็นจะต้องเขียน Code ในการจัดการค่าใน TextBox หรือในช่อง Name อย่างใดอย่างหนึ่งเพื่อให้ Lookup กันได้ ส่วนจะเขียนอย่างไรนั้นให้ลองเขียนก่อนครับ ติดตรงไหนก็มาดูกันต่อไป
Re: Add value in ListBox
Posted: Wed Jan 11, 2012 1:56 am
by ANUSARA
ลองนำcode ทั้งหมดมาทำเองอีก แต่ขึ้น error ในcodeด้านล่างค่ะ ไม่ทราบว่าเป็นเพราะเหตุใดค่ะ รบกวนช่วยตรวจดูให้ด้วยนะคะ
แนบไฟล์มาให้ด้วยค่ะ
ขอบคุณค่ะ
Code: Select all
Private Sub ListBox1_SelectNewRW_Click()
With Worksheets("UsEF_RW")
TextBox14_SelectCF.Value = Application.VLookup(Me.ListBox1_SelectNewRW, .Range("E15:Q100"), 10, False)
TextBox12_SelectSource.Value = Application.VLookup(Me.ListBox1_SelectNewRW, .Range("E15:Q100"), 12, False)
TextBox11_SelectYear.Value = Application.VLookup(Me.ListBox1_SelectNewRW, .Range("E15:Q100"), 13, False)
TextBox10_SelectLocation.Value = Application.VLookup(Me.ListBox1_SelectNewRW, .Range("E15:Q100"), 14, False)
TextBox9_SelectComment.Value = Application.VLookup(Me.ListBox1_SelectNewRW, .Range("E15:Q100"), 15, False)
End With
End Sub
Private Sub TextBox14_SelectCF_Change()
TextBox14_SelectCF.Value = Application.VLookup(Me.ListBox1_SelectNewRW, Worksheets("UsEF_RW").Range("E15:Q100"), 6, False)
End Sub
Private Sub TextBox12_SelectSource_Change()
TextBox12_SelectSource.Value = Application.VLookup(Me.ListBox1_SelectNewRW, Worksheets("UsEF_RW").Range("E15:Q100"), 8, False)
End Sub
Private Sub TextBox11_SelectYear_Change()
TextBox11_SelectYear.Value = Application.VLookup(Me.ListBox1_SelectNewRW, Worksheets("UsEF_RW").Range("E15:Q100"), 9, False)
End Sub
Private Sub TextBox10_SelectLocation_Change()
TextBox10_SelectLocation.Value = Application.VLookup(Me.ListBox1_SelectNewRW, Worksheets("UsEF_RW").Range("E15:Q100"), 10, False)
End Sub
Private Sub TextBox9_SelectComment_Change()
TextBox9_SelectComment.Value = Application.VLookup(Me.ListBox1_SelectNewRW, Worksheets("UsEF_RW").Range("E15:Q100"), 11, False)
End Sub
Re: Add value in ListBox
Posted: Wed Jan 11, 2012 9:45 am
by snasui
ยังไม่มี Code ใดที่ทำหน้าที่ปรับคอลัมน์ Name ให้มี Format เป็น Text นอกจากนี้ช่วงข้อมูลเช่น .Range("E15:Q100"),
14, False) เป็นสูตรที่ผิดพลาด เนื่องจาก E15:Q100 มีขอบเขตข้อมูลแค่ 13 คอลัมน์เท่านั้น แต่ต้องการนำคอลัมน์ที่ 14 มาแสดง ช่วงอื่น ๆ ที่มีลักษณะเช่นนี้จะผิดพลาดทั้งหมดครับ