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
"Data_All_Sale!B6:K,"M" & say
Code: Select all
"Data_All_Sale!B6:K,"Data_All_Sale!M6" & say
Code: Select all
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim say As Integer
say = WorksheetFunction.CountA(Worksheets("Data").Range("B:B"))
ListBox2.RowSource = "Data_All_Sale!B6:K" & say
ListBox2.ColumnCount = 11
ListBox2.ColumnWidths = "69;60;65;70;66;115;73;70;70;70;70"
End Sub
Private Sub UserForm_Initialize()
Dim say As Integer
Application.ScreenUpdating = False
say = WorksheetFunction.CountA(Worksheets("Data_All_Sale").Range("B:B"))
ListBox2.RowSource = "Data_All_Sale!B6:K" & say
ListBox2.ColumnCount = 11
ListBox2.ColumnWidths = "69;60;65;70;66;110;73;66;70;70;70"
ListBox2.MultiSelect = fmMultiSelectMulti
Application.ScreenUpdating = True
End Sub
ติดปัญหาเรื่องของเพิ่ม Column ประเภทใบอนุญาตไม่ได้ ครับรหัสสาขา
Code: Select all
Private Sub cmdbul1_Click()
Application.ScreenUpdating = False
ListBox2.RowSource = Empty
ListBox2.Clear
ListBox2.ColumnCount = 11
For Each isim In Range("B6:B" & Range("B65536").End(xlUp).Row)
If UCase(LCase(isim)) Like UCase(LCase(TextBox1)) & "*" Then
liste = ListBox2.ListCount
ListBox2.AddItem
ListBox2.List(liste, 0) = isim
ListBox2.List(liste, 1) = isim.Offset(0, 1)
ListBox2.List(liste, 2) = isim.Offset(0, 2)
ListBox2.List(liste, 3) = isim.Offset(0, 3)
ListBox2.List(liste, 4) = isim.Offset(0, 4)
ListBox2.List(liste, 5) = isim.Offset(0, 5)
ListBox2.List(liste, 6) = isim.Offset(0, 6)
ListBox2.List(liste, 7) = Format(isim.Offset(0, 7), "dd.mm.yyyy")
ListBox2.List(liste, 8) = Format(isim.Offset(0, 8), "dd.mm.yyyy")
ListBox2.List(liste, 9) = isim.Offset(0, 9)
End If
Next
Application.ScreenUpdating = True
End Sub
Code: Select all
ListBox2.List(liste, 10) = isim.Offset(0, 11)
Code: Select all
Private Sub UserForm_Initialize()
Dim say As Integer
Application.ScreenUpdating = False
say = WorksheetFunction.CountA(Worksheets("Data_All_Sale").Range("B:B"))
ListBox2.RowSource = "Data_All_Sale!B6:M" & say
ListBox2.ColumnCount = 12
ListBox2.ColumnWidths = "69;60;65;70;66;115;73;70;70;20;0;40"
ListBox2.MultiSelect = fmMultiSelectMulti
Application.ScreenUpdating = True
End Sub
Code: Select all
Private Sub cmdbul1_Click()
Application.ScreenUpdating = False
ListBox2.RowSource = Empty
ListBox2.Clear
ListBox2.ColumnCount = 11
n = 0
For Each isim In Range("B6:B" & Range("B65536").End(xlUp).Row)
If UCase(LCase(isim)) Like UCase(LCase(TextBox1)) & "*" Then
liste = ListBox2.ListCount
ListBox2.AddItem
ListBox2.List(liste, 0) = isim
ListBox2.List(liste, 1) = isim.Offset(0, 1)
ListBox2.List(liste, 2) = isim.Offset(0, 2)
ListBox2.List(liste, 3) = isim.Offset(0, 3)
ListBox2.List(liste, 4) = isim.Offset(0, 4)
ListBox2.List(liste, 5) = isim.Offset(0, 5)
ListBox2.List(liste, 6) = isim.Offset(0, 6)
ListBox2.List(liste, 7) = Format(isim.Offset(0, 7), "dd.mm.yyyy")
ListBox2.List(liste, 8) = Format(isim.Offset(0, 8), "dd.mm.yyyy")
ListBox2.List(liste, 9) = isim.Offset(0, 9)
n = n + 1
End If
Next
Application.ScreenUpdating = True
MsgBox n
End Sub
ข้อ 2 ถ้าเราจับมาร่วมเป็นปุ่มเดี่ยวได้ไหมครับ ใน Code ทั้งหมดนี้ต้องเพิ่มอะไรบ้างpong2532 wrote:ขอตอบในฐานะผู้ที่เคยใช้งานนะครับ
ข้อ1ข้อ2 เคยหาข้อมูลว่า Listbox ถ้าจะค้นหาแต่ละ Column ได้ไม่เกิน 10 Column ครับCode: Select all
Private Sub UserForm_Initialize() Dim say As Integer Application.ScreenUpdating = False say = WorksheetFunction.CountA(Worksheets("Data_All_Sale").Range("B:B")) ListBox2.RowSource = "Data_All_Sale!B6:M" & say ListBox2.ColumnCount = 12 ListBox2.ColumnWidths = "69;60;65;70;66;115;73;70;70;20;0;40" ListBox2.MultiSelect = fmMultiSelectMulti Application.ScreenUpdating = True End Sub
ยังไงท่านอื่นมาตอบนะครับหรือปรับ Column อื่นเข้าด้วยกัน เช่นชื่อนามสกุล
ข้อ 3Code: Select all
Private Sub cmdbul1_Click() Application.ScreenUpdating = False ListBox2.RowSource = Empty ListBox2.Clear ListBox2.ColumnCount = 11 n = 0 For Each isim In Range("B6:B" & Range("B65536").End(xlUp).Row) If UCase(LCase(isim)) Like UCase(LCase(TextBox1)) & "*" Then liste = ListBox2.ListCount ListBox2.AddItem ListBox2.List(liste, 0) = isim ListBox2.List(liste, 1) = isim.Offset(0, 1) ListBox2.List(liste, 2) = isim.Offset(0, 2) ListBox2.List(liste, 3) = isim.Offset(0, 3) ListBox2.List(liste, 4) = isim.Offset(0, 4) ListBox2.List(liste, 5) = isim.Offset(0, 5) ListBox2.List(liste, 6) = isim.Offset(0, 6) ListBox2.List(liste, 7) = Format(isim.Offset(0, 7), "dd.mm.yyyy") ListBox2.List(liste, 8) = Format(isim.Offset(0, 8), "dd.mm.yyyy") ListBox2.List(liste, 9) = isim.Offset(0, 9) n = n + 1 End If Next Application.ScreenUpdating = True MsgBox n End Sub