Page 1 of 1
ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 7:31 pm
by 9KiTTi
ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
ผมมี sheet 3 sheet โดยที่คอลัมน์แรกของทุก sheet จะมีข้อมูลทุกแถว แต่ว่าทุก sheet จะมีจำนวนแถวที่มีข้อมูลไม่เท่ากัน (ตามไฟล์ที่แนบมา) ผมขออนุญาตสอบถามตามนี้ครับ
1.คำนวณหาค่าว่างคอลัมน์ conduct ว่ามีค่าว่างเท่าไหร่โดยเทียบกับคอลัมน์ pcode
ผมใช้สูตร =COUNTBLANK(B2:B16) คำนวณหาได้ตามปกติ แต่ถ้ามีการนำเข้าข้อมูลมากกว่าจำนวนแถวที่กำหนด ผมไม่รู้ว่าต้องเขียนอย่างไรครับ ให้สามารถคำนวณหาค่าได้เท่าจำนวนแถวที่เพิ่มเข้ามาใหม่ เพราะข้อมูลที่เข้ามามีค่าไม่เท่ากันเสมอไป
2.จะนำข้อมูลเข้าไปแสดงในฟอร์มอย่างไรครับ ตามฟอร์มที่ผมสร้างไว้ครับ
ขอบพระคุณครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 7:41 pm
by snasui

กรุณาเขียน Code สำหรับการนับมาก่อน ลองบันทึก Macro การเขียนฟังก์ชั่น CountBlank แล้วปรับใช้ดูครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 7:57 pm
by 9KiTTi
ผมใช้สูตรนี้ในการหาผลรวมของคอลัมน์แรกครับ
Code: Select all
=COUNTIFS(INDIRECT("'"&$B3&"'!"&"R2C[-2]:R100000C[-2]",0),"<>")
ผมใช้สูตรนี้หาค่าว่างใน sheet data2 ครับ
แต่ถ้าคอลัมน์แรกไม่เกิน B16 หรือมากกว่านั้น จะต้องเข้ามาเขียนใหม่ ผมทราบสูตรที่สามารถคำนวณหาค่าว่างที่คอลัมน์ B โดยคำนวณแถวจากคอลัมน์แรกครับ เพราะคอลัมน์แรกจะมีจำนวนแถวที่มีข้อมูลทุกแถวครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 8:13 pm
by snasui

นับเซลล์ที่มีข้อมูลในคอลัมน์ A ใช้ CountA ได้ครับ
=Counta(A2:A10000)
จะได้ว่ามีข้อมูลเท่าไร
สามารถนำไปนับคอลัมน์อื่นเฉพาะที่มีข้อมูลได้เช่นกัน เช่น
=Counta(B2:B10000)
นำผลลัพธ์ของสูตรแรกตั้งลบด้วยผลลัพธ์ของสูตรที่สองก็จะได้จำนวนเซลล์ว่าง
สามารถเขียนเป็น
=Counta(A2:A10000)-Counta(B2:B10000)
เพื่อหาเซลล์ว่างในคอลัมน์ B ตามปริมาณข้อมูลในคอลัมน์ A ได้เช่นกันครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 10:25 pm
by 9KiTTi
ถ้าหากต้องการใส่สูตรใน textbox บน ฟอร์ม เพื่อให้สามารถคำนวณผลจาก sheet ต้องเขียน vba อย่างไรครับ ผมมทำได้แค่ดึงข้อมูลที่คำนวณแล้วจาก sheet มาแสดงผลครับ
ขอบพระคุณครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 10:40 pm
by snasui

แนบไฟล์ล่าสุดที่ได้เขียน Code เอาไว้แล้วมาด้วยครับ
การใช้ VBA จำเป็นต้องเขียนเองได้บ้างไม่ว่าจะด้วยการบันทึก Macro แล้วค่อยปรับใช้หรือค้นหามาแหล่งไหนก็ย่อมได้ แต่ต้องพยายามมาก่อนในทุกคำถาม การถามว่าเขียนอย่างไรจะไม่มีคำตอบให้ถ้ายังไม่เห็นสิ่งที่ได้ลองเขียนมาเองก่อนครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 10:47 pm
by 9KiTTi
ผมพอมีความเข้าใจในการเขียน VBA บ้างพอสมควร จากการศึกษาจากโพสต์ตอบคำถามของอาจารย์ที่ผ่านมาบ้างแล้วครับ
หลังจากกดปุ่มตรวจสอบ จะมีฟอร์มเปิดขึ้นมา หลังจากนั้น ให้แสดงผลจำนวนค่าว่างของคอลัมน์ต่างๆใน textbox ครับอาจารย์ ผมลองใช้แบบนี้แล้วไม่ได้ครับ
Code: Select all
Private Sub TextBox1_Change()
WorksheetFunction.COUNTA(A2:A10000) - COUNTA(B2:B10000)
End Sub
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Sun Aug 15, 2021 10:57 pm
by snasui

ไม่พบ Code ในไฟล์ที่แนบมา กรุณาแนบไฟล์ล่าสุดมาใหม่ครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Mon Aug 16, 2021 10:07 am
by 9KiTTi
ขออภัยครับอาจารย์ ส่งผิดไฟล์ครับ
Code: Select all
Private Sub TextBox1_Change()
TextBox1.Text = Application.WorksheetFunction.CountA("DATA1!A2:A100000") - CountA(Range("DATA1!B2:B100000")
End Sub
ผมใช้คำสั่งนี้ใน Textbox1 ครับ
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Mon Aug 16, 2021 11:03 am
by logic
แบบนี้ได้ไหมครับ
Code: Select all
Private Sub UserForm_Initialize()
alldata_acc.ControlSource = "main!C3"
Me.TextBox1.Text = Application.WorksheetFunction.CountA([DATA1!A2:A100000]) - _
Application.WorksheetFunction.CountA([DATA1!B2:B100000])
End Sub
Re: ขออนุญาตสอบถามเรื่องการคำนวณหาจำนวนว่างโดยเทียบกับแถวหลักที่มีจำนวนคงที่ และนำผลที่คำนวณได้มาแสดงในฟอร์มครับ
Posted: Mon Aug 16, 2021 11:57 am
by 9KiTTi
logic wrote: Mon Aug 16, 2021 11:03 am
แบบนี้ได้ไหมครับ
Code: Select all
Private Sub UserForm_Initialize()
alldata_acc.ControlSource = "main!C3"
Me.TextBox1.Text = Application.WorksheetFunction.CountA([DATA1!A2:A100000]) - _
Application.WorksheetFunction.CountA([DATA1!B2:B100000])
End Sub
ใช้ได้ครับอาจารย์ ตรงตามที่ต้องการครับ ผมเอามาเปรียบกับ Code ที่ผมเขียน ทำให้เข้าใจหลักการมากขึ้น ขอบพระคุณครับ