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
Private Sub CommandButton1_Click()
'ws.Cells(irow, 1).Value = Me.TextBox1.Value
Dim sld As Slide
Set sld = ActivePresentation.Slides("Slide1")
Me.TextBox1.Value = sld.Shapes(1).Table.Cell(2, 1).Shape.TextFrame.TextRange.Text
Me.TextBox2.Value = sld.Shapes(1).Table.Cell(3, 2).Shape.TextFrame.TextRange.Text
Me.TextBox3.Value = sld.Shapes(1).Table.Cell(4, 3).Shape.TextFrame.TextRange.Text
End Sub
Code: Select all
Dim sld As Slide, tb As String
Set sld = ActivePresentation.Slides("Slide83")
Me.TextBox1.Value = sld.Shapes(1).OLEFormat.Object.Worksheets(1).Range("A1").Value
Code: Select all
Private Sub CommandButton1_Click()
ActivePresentation.Slides("Slide92").Shapes("TextBox2").OLEFormat.Object.Value = Me.ComboBox1.Value
ActivePresentation.Slides("Slide93").Shapes("TextBox2").OLEFormat.Object.Value = Me.ComboBox1.Value
'Me.TextBox1.Value = sld.Shapes(1).OLEFormat.Object.Worksheets(1).Range("AR3").Value
End Sub
Code: Select all
Private Sub ComboBox1_Change()
Me.ComboBox1.AddItem " ", 0
Me.ComboBox1.AddItem "DAY#1", 1
Me.ComboBox1.AddItem "DAY#2", 2
Me.ComboBox1.AddItem "DAY#3", 3
End Sub
สามารถเขียนคำสั่ง Add Item ด้วย Change Event ของ Object อื่นที่ไม่ใช่ตัวมันเอง เช่น ComboBox ตัวอื่น, CheckBox, TextBox, Label ฯลฯ หรือ สร้างปุ่มขึ้นมาเองใหม่ เช่น คลิกปุ่มใด ๆ แล้วมีการ Add Item ให้กับ ComboBox เป้าหมาย เช่นนี้เป็นต้นครับGobWeravong wrote: Tue Mar 09, 2021 10:17 am ดังนั้นผมต้องเปลี่ยนคำสั่ง add item เป็นอย่างอื่นใช่ไหมครับ
Code: Select all
Private Sub DAY_GotFocus()
If DAY.ListCount = 0 Then DropDownList
End Sub
Sub DropDownList()
DAY.AddItem "DAY#1"
DAY.AddItem "DAY#2"
DAY.AddItem "DAY#3"
DAY.ListRow = 3
End Sub
Code: Select all
Private Sub CommandButton2_Click()
Dim sld As Slide, tb As String
Set sld = ActivePresentation.Slides("Slide83")
If ComboBox2.Value = "1_Before" Then
ActivePresentation.Slides("Slide90").Shapes("TextBox1").OLEFormat.Object.Value =
sld.Shapes(1).OLEFormat.Object.Worksheets(1).Range("AR3").Value
ActivePresentation.Slides("Slide90").Shapes("TextBox2").OLEFormat.Object.Value =
sld.Shapes(1).OLEFormat.Object.Worksheets(1).Range("AQ3").Value
ActivePresentation.Slides("Slide90").Shapes("TextBox3").OLEFormat.Object.Value = Me.DAY.Value
ActivePresentation.SlideShowWindow.View.GotoSlide 3
Else
If ComboBox2.Value = "1_After" Then
ActivePresentation.SlideShowWindow.View.GotoSlide 4
End If
End If
End Sub
ต้องไม่ใช้ ComboBox_Change หรือเลิกที่จะใช้ Event นี้ในการ Add Item ให้ตัวเองครับ ผมอธิบายมาหลายรอบ กรุณาอ่านทบทวนให้เข้าใจครับGobWeravong wrote: Tue Mar 09, 2021 11:10 am พอผม click ที่ปุ่ม combo หรือ view code มันจะวิ่งไปให้สร้างที่ Private Sub ComboBox_Change() พอผมเปลี่ยนชื่อ เป็น Private Sub DAY_GotFocus() และคีย์ตาม code ด้านล่างครบถ้วน แต่พอ view code ระบบมันก็ยังคงยืนยันไปที่ Private Sub ComboBox_Change() ตลอดเลยครับ
ไม่ใช่ต้องไปหาคำสั่งอื่นในการ Add Item ให้กับ ComboBox แต่ต้องหา Event อื่น ของ Object อื่นในการ Add Itemให้กับ ComboBox นี้ ไม่ใช้ใช้ ComboBox_Change() ของตัวมันเองในการ Add Item ให้ตัวเอง เพราะเมื่อเลือกรายการ มันจะ Add Item เข้าไปอีกวนไปเช่นนี้ไม่รู้จบGobWeravong wrote: Tue Mar 09, 2021 11:10 am ส่วนเรื่อง AddItem ตามที่คุณ snasui แนะนำมา พอจะเข้าใจแล้วครับ มันคือการเพิ่มหัวข้อใน dropdrop และผมไปนำค่าใน dropdrop เพิ่มไปเรื่อยๆ พอคลิค dropdown มันก็จะเพิ่มทวีคูณไปเรื่อยๆครับ ดังนั้นจะต้องหาคำสั่งใหม่ทดแทน add item