EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
TextBox2.Text = TextBox1.Text
Code: Select all
ListBox1.AddItem TextBox1.Text
Code: Select all
ListBox1.AddItem = TextBox8_Name
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
ก็ไม่ควรจะได้ครับผมไม่ได้แนะนำว่าให้ใช้ ListBox1.AddItem = TextBox8_Name ครับ ช่วยอ่านใหม่ช้า ๆ อีกครั้งครับANUSARA wrote:ลองเอา code ListBox1.AddItem = TextBox8_Name ใส่ดูแล้วก็ยังขึ้น compile error อยู่ค่ะ รบกวนช่วยดูด้วยนะคะ ขอบคุณค่ะ
Code: Select all
Private Sub TextBox8_Name_Change()
UserForm1.ListBox1.AddItem (UserForm1.TextBox8_Name.Text)
End Sub
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: 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
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
ดังนั้นสิ่งที่น่าจะเป็นคำถามคือ UserForm_Initialize Events สามารถดูได้จากไหน จะได้เอา Code การ Loop ไปใส่ได้snasui wrote:โดยปกติการนำข้อมูลมาไว้ใน ListBox เพื่อให้เลือกได้ ควรทำที่ UserForm_Initialize Events และเมื่อมีการ Update TextBox8_Name ค่อย Add รายการเข้าไปเพิ่มทีละรายการ (หากต้องการ) สำหรับ Code นี้กรณีที่ TextBox8_Name มีการเปลี่ยนจะมีการเพิ่มชุดข้อมูลเข้าไปอีกครั้ง
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: 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
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: 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
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: 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