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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)ผลลัพท์ที่ต้องการครับparakorn wrote: Thu May 03, 2018 9:53 am ยกตัวอย่างผลลัพท์ที่ต้องการด้วยครับ Database ที่อ้างอิงใน list คืออะไรครับ
ขอบคุณครับ ผมแนบไฟล์ใหม่แล้วsnasui wrote: Mon May 07, 2018 8:29 pm ไฟล์ที่แนบมานั้นไม่มี Macro มาด้วย ไฟล์ที่จะมี Macro ได้ต้องมีนามสกุลเป็น .xlsm เป็นอย่างน้อยครับ
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lb As Object, i As Integer, lsrng As Range
Set lb = ActiveSheet.ListBox1
Set c = Target
Set lsrng = Range("k2:k4")
If Not Intersect(Target, Range("j13:j" & Rows.Count)) Is Nothing Then
With lb
For i = .ListCount - 1 To 0 Step -1
.RemoveItem (i)
Next i
For i = 0 To lsrng.Count - 1
.AddItem lsrng(i + 1).Value
Next i
.Left = Target.Offset(0, 1).Left
.Top = Target.Offset(0, 1).Top
.Visible = True
End With
Else
lb.Visible = False
End If
End Sub
Code: Select all
Public c As Range
Sub Bevel1_Click()
Dim i As Integer, t As String
Set lb = Sheets(1).ListBox1
With lb
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
t = t & ";" & .List(i)
End If
Next i
End With
c.Value = Mid(t, 2)
End Sub
Code: Select all
'Other Code...
If Not Intersect(c, Range("j13:j" & Rows.Count)) Is Nothing Then
c.Value = Mid(t, 2)
End If
End Sub
Code: Select all
'Other code...
With lb
.ListFillRange = ""
For i = .ListCount - 1 To 0 Step -1
.RemoveItem (i)
Next i
For i = 0 To lsrng.Count - 1
.AddItem lsrng(i + 1).Value
Next i
.Left = Target.Offset(0, 1).Left
.Top = Target.Offset(0, 1).Top
.Visible = True
End With
'Other code...
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lb As Object, i As Integer, lsrng As Range
Set lb = ActiveSheet.ListBox1
Set c = Target
If Target.Column = Columns("j").Column Then
Set lsrng = Range("j2:j4")
ElseIf Target.Column = Columns("k").Column Then
Set lsrng = Range("k2:k4")
End If
If Not Intersect(Target, Range("j9:k" & Rows.Count)) Is Nothing Then
With lb
.ListFillRange = ""
For i = .ListCount - 1 To 0 Step -1
.RemoveItem (i)
Next i
For i = 0 To lsrng.Count - 1
.AddItem lsrng(i + 1).Value
Next i
.Left = Target.Offset(0, 1).Left
.Top = Target.Offset(0, 1).Top
.Visible = True
End With
Else
lb.Visible = False
End If
End Sub
Code: Select all
Public c As Range
Sub Bevel1_Click()
Dim i As Integer, t As String
Set lb = Sheets(1).ListBox1
With lb
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
t = t & "; " & .List(i)
End If
Next i
End With
If Not Intersect(c, Range("j9:k" & Rows.Count)) Is Nothing Then
c.Value = Mid(t, 2)
End If
End Sub