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()
Application.ScreenUpdating = False
Dim iname As String
iname = TextBox1
Sheets("BBBack").Visible = True
Sheets("BBBack").Select
With [a65535].Offset.End(xlUp)
.Offset(0, 0) = iname
End With
If Trim(TextBox1.Value) = "" Then
TextBox1.SetFocus
MsgBox "ãÊèª×èÍáÅйÒÁÊ¡ØÅ¡è͹"
Exit Sub
End If
TextBox1.Value = ""
TextBox1.SetFocus
ActiveWindow.SelectedSheets.Visible = False
ActiveWorkbook.Save
Unload Me
End Sub
Code: Select all
'--Other code
If Trim(TextBox1.Value) = "" Then
TextBox1.SetFocus
ActiveWindow.SelectedSheets.Visible = False
MsgBox "ใส่ชื่อและนามสกุลก่อน"
Exit Sub
End If
'--Other code
ขอบคุณมากครับผม ใช้งานได้ดีแล้ว ไม่มีปัญหาsnasui wrote: ตัวอย่างการปรับ Code ครับ
Code ตามนี้ครับ และไฟล์ที่ซ่อนจะแสดงออกมา โดยที่ใช้คำสั่ง xlsheetVeryHidden ด้วยครับsnasui wrote: ผมทดสอบแล้วไม่พบว่ามีปัญหาเช่นนั้น ลองแนบไฟล์ล่าสุดที่ได้ปรับ Code ด้านบนแล้วมาดูกันครับ
Code: Select all
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim iname As String
iname = TextBox1
Sheets("BBBack").Visible = True
Sheets("BBBack").Select
With [a65535].Offset.End(xlUp)
.Offset(1, 0) = iname
End With
If Trim(TextBox1.Value) = "" Then
TextBox1.SetFocus
ActiveWindow.SelectedSheets.Visible = False
MsgBox "ใส่ชื่อและนามสกุลก่อน"
Exit Sub
End If
TextBox1.Value = ""
TextBox1.SetFocus
ActiveWorkbook.Save
Unload Me
End Sub
Code: Select all
Sheets("BBBack").Visible = False
Code: Select all
End With
ActiveWindow.SelectedSheets.Visible = False
อยู่ใต้บรรทัด TextBox1.SetForcus
ก็ให้เก็บไว้เช่นเดิมครับขอบคุณครับ จะเอาไปลองดูครับpuriwutpokin wrote:ใส่หลังCode: Select all
Sheets("BBBack").Visible = False
ดูว่าใช่ไหมครับCode: Select all
End With
ขอบคุณครับ ลองทำแล้วได้เลยครับแต่ชีทที่ใช้คำสั่ง xlsheetVeryHidden หลังจากรัน Code มันกลายเป็น xlsheetVisible ครับ จะแก้แบบไหนครับsnasui wrote: Code ที่ผมโพสต์ตอบไปคือใส่เพิ่มเข้าไป ไม่ได้ให้ย้ายบรรทัดหรือลบ Code ที่มีอยู่เดิมทิ้งไปครับ
เดิมมี CodeActiveWindow.SelectedSheets.Visible = False
อยู่ใต้บรรทัดTextBox1.SetForcus
ก็ให้เก็บไว้เช่นเดิมครับ
ใส่ Code นี้เข้าไป ชีต Check Date กลับถูกซ่อนไปไม่รู้ว่าใส่ผิดตรงไหนอีกแล้วครับsnasui wrote: สั่งให้ซ่อนแบบ VeryHidden ใหม่ครับ ตัวอย่างครับ http://stackoverflow.com/questions/8532 ... t-with-vba
Code: Select all
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim iname As String
iname = TextBox1
Sheets("BBBack").Visible = True
Sheets("BBBack").Select
With [a65535].Offset.End(xlUp)
.Offset(1, 0) = iname
End With
Sheets("BBBack").Visible = False
If Trim(TextBox1.Value) = "" Then
TextBox1.SetFocus
ActiveWindow.SelectedSheets.Visible = False
MsgBox "ใส่ชื่อและนามสกุลก่อน"
Exit Sub
End If
TextBox1.Value = ""
TextBox1.SetFocus
ActiveWindow.SelectedSheets.Visible = False
Sheets("BBBack").Visible = xlSheetVeryHidden
ActiveWorkbook.Save
Unload Me
End Sub
Code: Select all
Private Sub CommandButton1_Click()
Dim iname As String
Application.ScreenUpdating = False
iname = TextBox1
Sheets("BBBack").Visible = True
Sheets("BBBack").Select
With [a65535].Offset.End(xlUp)
.Offset(1, 0) = iname
End With
If Trim(TextBox1.Value) = "" Then
TextBox1.SetFocus
Sheets("BBBack").Visible = xlSheetVeryHidden
MsgBox "ใส่ชื่อและนามสกุลก่อน"
Exit Sub
End If
Sheets("BBBack").Visible = xlSheetVeryHidden
ActiveWorkbook.Save
Unload Me
End Sub
ขอบคุณครับ ใช้งานได้แล้วsnasui wrote: ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub Msgbox_show()
If Range("L3:L203").Value = "ครบกำหนด" Then
MsgBox "ครบกำหนดแล้ว"
End If
End Sub
ตั้งแต่เซลส์ L3 ถึง L203 ครับว่าเซลส์ใด มีคำว่า "ครบกำหนด" ซึ่งจำนวนจะไม่แน่นอนว่ามีกี่เซลส์ ( มาจากวันที่ในเซลส์ K ครับ )snasui wrote: การตรวจสอบคำว่า "ครบกำหนด" ตรวจทุกเซลล์หรือเพียงเซลล์ใดเซลล์หนึ่งครับ
ควรแนบไฟล์ประกอบคำถามทุกครั้งเพื่อความสะดวกในการตอบของเพื่อนสมาชิกครับ
Code ด้านบนนี้อยู่ใน Module ใดของไฟล์ที่แนบมาล่าสุดครับrich37 wrote:ขอบคุณครับ ใช้งานได้แล้วsnasui wrote: ตัวอย่างการปรับ Code ครับ
มีอีก 1 เรื่องที่ลองทำแล้วยังไม่สำเร็จ คือ การให้ Msgbox แสดงในเงื่อนไขที่ว่า หากชีต Data เซลส์ L3:L203 มีคำว่า "ครบกำหนด" ( จะไม่ขึ้นทั้งหมด ตามนี้ L3 =IF(ISBLANK(K3),"",IF(K3<TODAY(),"เกินกำหนด",IF(K3<=TODAY(),"ครบกำหนด","ยังไม่ถึงกำหนด"))) )รบกวนช่วยเรื่องนี้ด้วยครับCode: Select all
Sub Msgbox_show() If Range("L3:L203").Value = "ครบกำหนด" Then MsgBox "ครบกำหนดแล้ว" End If End Sub
ยังไม่ได้เอาใส่ไปใน Module ครับผมแค่ทดสอบรันดูมันไม่ได้ครับsnasui wrote:Code ด้านบนนี้อยู่ใน Module ใดของไฟล์ที่แนบมาล่าสุดครับrich37 wrote:ขอบคุณครับ ใช้งานได้แล้วsnasui wrote: ตัวอย่างการปรับ Code ครับ
มีอีก 1 เรื่องที่ลองทำแล้วยังไม่สำเร็จ คือ การให้ Msgbox แสดงในเงื่อนไขที่ว่า หากชีต Data เซลส์ L3:L203 มีคำว่า "ครบกำหนด" ( จะไม่ขึ้นทั้งหมด ตามนี้ L3 =IF(ISBLANK(K3),"",IF(K3<TODAY(),"เกินกำหนด",IF(K3<=TODAY(),"ครบกำหนด","ยังไม่ถึงกำหนด"))) )รบกวนช่วยเรื่องนี้ด้วยครับCode: Select all
Sub Msgbox_show() If Range("L3:L203").Value = "ครบกำหนด" Then MsgBox "ครบกำหนดแล้ว" End If End Sub
ผมเอาใส่ใน Module แล้วรันเกิด error ตามรูปประกอบครับ ข้อมูลจะมีลักษณะดังชีตData ครับ และหากข้อมูลในเซลส์ L3 ถึง L203 มีคำว่า "ครบกำหนด" โดยข้อมูลจะอ้างจากเซลส์ K3 ถึง K203 สูตรที่ L3 =IF(ISBLANK(K3),"",IF(K3<TODAY(),"เกินกำหนด",IF(K3<=TODAY(),"ครบกำหนด","ยังไม่ถึงกำหนด")))ก็ให้ Code ทำงาน แสดง Msgbox "ครบกำหนดแล้ว" ครับsnasui wrote: ใส่มาให้เรียบร้อยแล้วแนบไฟล์มาใหม่ ทำตัวอย่างข้อมูลมาด้วยว่าข้อมูลจะมีลักษณะเป็นอย่างไร และหากข้อมูลเป็นเช่นนั้น ผลของ Code นั้นจะแสดงผลอย่างไร จะได้สะดวกในการทำความเข้าใจครับ