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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)snasui wrote: การใช้เวลามาเป็น Event ในการเปลี่ยนค่าใน ComboBox จะมี 2 ลักษณะเป็นอย่างน้อยครับ
แบบแรกเปลี่ยนค่าใน ComboBox เมื่อถึงกำหนดเวลานั้นและต้องเปิดไฟล์อยู่ตลอดเวลา Code ที่ใช้จะเป็นการ Code ลักษณะการจับเวลา
แบบที่สองคือ เมื่อเปิดไฟล์ค่อยตรวจสอบแล้วเปลี่ยนค่าใน ComboBox
การเขียน Code จะยากง่ายต่างกัน โดยแบบที่สองจะง่ายกว่า
การดักแบบที่สองนี้สามารถหาได้โดยทั่วไปครับ คือจะมีการเก็บค่าวันที่ เวลา ปัจจุบันเอาไว้สักที่ เมื่อเปิดไฟล์ครั้งถัดไปจะตรวจสอบว่า ขณะที่เปิดไฟล์เป็นเวลาตามเงื่อนไขแล้วหรือไม่ หากเป็นตามเงื่อนไขแล้วค่อยบวกค่าใน ComboBox ไปอีก 1 หากไม่เปิดทุกวันก็จะต้องดักให้ได้ว่าต้องบวกไปเป็นจำนวนเท่าใดเช่นนี้เป็นต้นครับ
snasui wrote: การใช้เวลามาเป็น Event ในการเปลี่ยนค่าใน ComboBox จะมี 2 ลักษณะเป็นอย่างน้อยครับ
แบบแรกเปลี่ยนค่าใน ComboBox เมื่อถึงกำหนดเวลานั้นและต้องเปิดไฟล์อยู่ตลอดเวลา Code ที่ใช้จะเป็นการ Code ลักษณะการจับเวลา
แบบที่สองคือ เมื่อเปิดไฟล์ค่อยตรวจสอบแล้วเปลี่ยนค่าใน ComboBox
การเขียน Code จะยากง่ายต่างกัน โดยแบบที่สองจะง่ายกว่า
การดักแบบที่สองนี้สามารถหาได้โดยทั่วไปครับ คือจะมีการเก็บค่าวันที่ เวลา ปัจจุบันเอาไว้สักที่ เมื่อเปิดไฟล์ครั้งถัดไปจะตรวจสอบว่า ขณะที่เปิดไฟล์เป็นเวลาตามเงื่อนไขแล้วหรือไม่ หากเป็นตามเงื่อนไขแล้วค่อยบวกค่าใน ComboBox ไปอีก 1 หากไม่เปิดทุกวันก็จะต้องดักให้ได้ว่าต้องบวกไปเป็นจำนวนเท่าใดเช่นนี้เป็นต้นครับ
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheet3.ComboBox4 = "1" Then
If Sheet5.Range("D4").Value = 7 And Sheet5.Range("E4").Value = 30 Then Sheet3.ComboBox4 = ("1") + 1
ElseIf Sheet3.ComboBox4 = "2" Then
If Sheet5.Range("D4").Value = 7 And Sheet5.Range("E4").Value = 30 Then Sheet3.ComboBox4 = ("2") + 1
ElseIf Sheet3.ComboBox4 = "3" Then
If Sheet5.Range("D4").Value = 7 And Sheet5.Range("E4").Value = 30 Then Sheet3.ComboBox4 = ("3") + 1
.
.
.
.
ElseIf Sheet3.ComboBox4 = "30" Then
If Sheet5.Range("D4").Value = 7 And Sheet5.Range("E4").Value = 30 Then Sheet3.ComboBox4 = ("30") + 1
ElseIf Sheet3.ComboBox4 = "31" Then
If Sheet5.Range("D4").Value = 7 And Sheet5.Range("E4").Value = 30 Then Sheet3.ComboBox4 = ("31") - 30
End If
End Sub
Worksheets_Change
ไม่ใช่ WorkSheet_SelectionChange
ครับครับ ขอบคุณมากครับsnasui wrote: กรณีต้องการส่งค่ามาเพื่อเปลี่ยนค่าในเซลล์ แสดงว่าควรดักด้วยWorksheets_Change
ไม่ใช่WorkSheet_SelectionChange
ครับ