snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#1
Post
by wisitsakbenz » Wed Dec 14, 2022 11:39 am
เรียน อาจารย์
ไฟล์ "Pre-Arrangement1 - Copy - Copy" คลิก Getdata > Save > จะถูกเก็บในไฟล์ "All Data Estimated"
อยากสอบถามอาจารย์ว่า ทำไมหน้า input "E22" ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000 ใน Column "CD"
ไม่แน่ใจว่าต้องแก้ไขอย่างไรครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed Dec 14, 2022 4:14 pm
กรณีเช่นนี้บอกได้แต่เพียงว่าโปรแกรมมองว่า Field นั้นคือ String ไม่ใช่ Number เมื่อนำไปวางจึงกลายเป็น String แต่เมื่อดึงออกมากลับแสดงเป็น Number ได้ปกติ
เราไม่สามารถ Set Data Type ให้กับ Statement แบบรวบรัดเช่นนั้น และหากจะกำหนดค่าที่บันทึกเข้าไปแยกราย Field จะยิ่งทำให้ Code ดูยืดยาวและยุ่งยากซับซ้อน หากว่าไม่มีผลกระทบต่อการใช้งานก็สามารถใช้ได้ตามปกติ
แต่หากมีผลกระทบ สามารถแก้ไขเฉพาะหน้าโดยในตอนนำไปใช้ให้แปลงกลับเป็น Number ด้วยวิธีการใด ๆ เช่นเขียนเขียน Code เข้าไปจัดการเพื่อ Convert ให้กลายเป็น Data Type ที่ต้องการเสียก่อนครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#3
Post
by wisitsakbenz » Wed Dec 14, 2022 10:30 pm
เรียน อาจารย์ snasui
หากว่าไม่มีผลกระทบต่อการใช้งานก็สามารถใช้ได้ตามปกติ
เขียนเขียน Code เข้าไปจัดการเพื่อ Convert ให้กลายเป็น Data Type ที่ต้องการเสียก่อนครับ
มีผลต่อการใช้งานครับ ต้องนำค่ามารวมกันครับ
อาจารย์ แนะนำ code ที่สามารถ convert เป็น data type หนือสามารถ ศึกษาได้จากแหล่งใดครับ
ขอบคุณครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#5
Post
by wisitsakbenz » Thu Dec 15, 2022 8:36 am
เรียน อาจารย์ snasui
การ Loop เข้าไปในแต่ละเซลล์ตาม Link
ผมต้องการแยก Data ออกจากหน้า input ครับ เพราะข้อมูลตอนนี้มีประมาณ 4 หมื่นกว่า Row ถ้าบันทึกข้อมูลในลักษณะนี้จะทำให้ไฟล์หนัก และบันทึกช้าครับ
ผมลองปรับ Code แล้วแต่ยังไม่ได้
ไม่แน่ใจว่าปรับในส่วนนี้หรือไม่ครับ ขอคำแนะนำจากอาจารย์ด้วยครับ ขอบคุณครับ
Code: Select all
'-----other code
Dim sql As String, shtName As String
Dim arr() As Variant, i As Integer, j As Integer
sFile = "\\10.21.4.97\File Sharing2\DataPricing\All Data Estimated.xlsx"
shtName = CVar("[Data$]")
sCnstr.CursorLocation = adUseClient
'-----other code
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu Dec 15, 2022 10:38 am
snasui wrote: Wed Dec 14, 2022 4:14 pm
สามารถแก้ไขเฉพาะหน้าโดย
ในตอนนำไปใช้ ให้แปลงกลับเป็น Number ด้วยวิธีการใด ๆ
คุณ wisitsakbenz เข้าใจประโยคข้างบนว่าอย่างไรครับ
สิ่งที่ถามมาตามโพสต์
viewtopic.php?p=114424#p114420 นั้นเป้นขั้นตอนการนำไปใช้หรือขั้นตอนของการบันทึกเข้าไปครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#7
Post
by wisitsakbenz » Thu Dec 15, 2022 1:22 pm
เรียน อาจารย์ Snasui
สามารถแก้ไขเฉพาะหน้าโดยในตอนนำไปใช้ ให้แปลงกลับเป็น Number ด้วยวิธีการใด ๆ เช่นเขียนเขียน Code เข้าไปจัดการเพื่อ Convert ให้กลายเป็น Data Type ที่ต้องการเสียก่อนครับ
ตอนแรก ผมเข้าใจว่า ---> อาจารย์ให้ลองเขียน Code มาดู
แต่ตอนนี้ผมเข้าใจว่า ---> แก้ไขโดยการลบ ' ออก ใน Sheet "All Data Estimated" ใช่หรือไม่ครับ อาจารย์
ผมเข้าใจถูกหรือไม่ครับ ขอบคุณครับ
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Thu Dec 15, 2022 1:28 pm
ไม่ใช่ครับ
ความหมายคือ ไม่ต้องสนใจว่าบันทึกเข้าไปแล้วได้ Data Type ใด
ให้สนใจตอนดึงมาใช้งาน หากมันไม่แสดงเป็นตัวเลขให้ใช้ Code เข้าไปแปลงให้เป็นตัวเลขครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#9
Post
by wisitsakbenz » Thu Dec 15, 2022 2:40 pm
เรียน อาจารย์ Snasui
run > Sub LastData() เพื่อให้แสดงรายการล่าสุด
ค่าที่ได้ยังคงเป็น string (บาง Fields เป็น string บาง Fields เป็น integer ครับ)
ผมลองปรับ Code ไม่แน่ใจว่าปรับในส่วนนี้หรือไม่ครับ ขอคำแนะนำจากอาจารย์ด้วยครับ ขอบคุณครับ
Code: Select all
'-----other code
Dim sql As String, shtName As String
Dim arr() As Variant, i As Integer, j As Integer
sFile = "\\10.21.4.97\File Sharing2\DataPricing\All Data Estimated.xlsx"
shtName = CVar("[Data$]")
sCnstr.CursorLocation = adUseClient
'-----other code
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Thu Dec 15, 2022 3:38 pm
wisitsakbenz wrote: Wed Dec 14, 2022 10:30 pm
มีผลต่อการใช้งานครับ ต้องนำค่ามารวมกันครับ
ค่อย ๆ ถามตอบกันไปครับ จากประโยคด้านบน รวมที่ไหนเมื่อไรครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#11
Post
by wisitsakbenz » Thu Dec 15, 2022 4:01 pm
เรียน อาจารย์ Snasui
จะ Sum (E22+G22) ครับอาจารย์
จากไฟล์นี้ค่าที่ดังออกมา สามารถรวมได้ปกติ แต่ใช้งานจริง บาง Fields ที่เป็น Text จะไม่สามารถรวมได้ครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Thu Dec 15, 2022 4:13 pm
สามารถเขียนบวกกันธรรมดาได้เลยครับ
=E22+G22
หรือมีปัญหาใดครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#13
Post
by wisitsakbenz » Thu Dec 15, 2022 4:21 pm
เรียน อาจารย์ Snasui
ไฟล์ที่ใช้งานจริง บวกผิดครับ ต้องได้ค่า 19200 ครับ
ไม่แน่ใจว่าผิดอย่างไรครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
Last edited by
wisitsakbenz on Thu Dec 15, 2022 4:25 pm, edited 1 time in total.
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Thu Dec 15, 2022 4:23 pm
แนบไฟล์นั้นมาและตัดมาเป็นตัวอย่างจะได้เห็นว่าบวกอย่างไร ผิดอย่างไร จะได้แก้ปัญหาได้ถูกจุดครับ
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#15
Post
by wisitsakbenz » Thu Dec 15, 2022 4:33 pm
เรียน อาจารย์
ไฟล์จริงมีขนาดใหญ่ เลยตัดให้เฉพาะส่วนที่คำนวณครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31153 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Thu Dec 15, 2022 4:39 pm
ปรับสูตรเป็นด้านล่างครับ
=SUMPRODUCT(--A1:B12)
สิ่งที่ผมแนะนำให้แก้คือ Loop ไปแก้ที่ไฟล์นี้ซึ่งเป็นการนำไปใช้งาน เพื่อแปลงค่าแต่ละเซลล์ให้เป็น Number เสียก่อน แต่ดูเหมือนจะไม่เข้าใจในสิ่งที่แนะนำไป กลับพยายามจะไปปรับ Code ในตอนบันทึกอยู่ตลอดเวลา
wisitsakbenz
Silver
Posts: 562 Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013
#17
Post
by wisitsakbenz » Thu Dec 15, 2022 4:48 pm
เรียน อาจารย์ Snasui
=SUMPRODUCT(--A1:B12)
สิ่งที่ผมแนะนำให้แก้คือ Loop ไปแก้ที่ไฟล์นี้ซึ่งเป็นการนำไปใช้งาน เพื่อแปลงค่าแต่ละเซลล์ให้เป็น Number เสียก่อน แต่ดูเหมือนจะไม่เข้าใจในสิ่งที่แนะนำไป กลับพยายามจะไปปรับ Code ในตอนบันทึกอยู่ตลอดเวลา
สูตรนี้ใช้ได้แล้วครับ
ขอโทษอาจารย์ด้วยครับ ขอบคุณอาจารย์ที่แนะนำครับ
ขอบคุณครับ