:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#1

Post by wisitsakbenz »

เรียน อาจารย์

ไฟล์ "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.
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#2

Post by snasui »

:D กรณีเช่นนี้บอกได้แต่เพียงว่าโปรแกรมมองว่า Field นั้นคือ String ไม่ใช่ Number เมื่อนำไปวางจึงกลายเป็น String แต่เมื่อดึงออกมากลับแสดงเป็น Number ได้ปกติ

เราไม่สามารถ Set Data Type ให้กับ Statement แบบรวบรัดเช่นนั้น และหากจะกำหนดค่าที่บันทึกเข้าไปแยกราย Field จะยิ่งทำให้ Code ดูยืดยาวและยุ่งยากซับซ้อน หากว่าไม่มีผลกระทบต่อการใช้งานก็สามารถใช้ได้ตามปกติ

แต่หากมีผลกระทบ สามารถแก้ไขเฉพาะหน้าโดยในตอนนำไปใช้ให้แปลงกลับเป็น Number ด้วยวิธีการใด ๆ เช่นเขียนเขียน Code เข้าไปจัดการเพื่อ Convert ให้กลายเป็น Data Type ที่ต้องการเสียก่อนครับ
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#3

Post by wisitsakbenz »

เรียน อาจารย์ snasui
หากว่าไม่มีผลกระทบต่อการใช้งานก็สามารถใช้ได้ตามปกติ
เขียนเขียน Code เข้าไปจัดการเพื่อ Convert ให้กลายเป็น Data Type ที่ต้องการเสียก่อนครับ
มีผลต่อการใช้งานครับ ต้องนำค่ามารวมกันครับ
อาจารย์ แนะนำ code ที่สามารถ convert เป็น data type หนือสามารถ ศึกษาได้จากแหล่งใดครับ
ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#4

Post by snasui »

:D ดูตัวอย่างการ Loop เข้าไปในแต่ละเซลล์ตาม Link นี้ซึ่งเลือกมาให้แล้วว่าเริ่มดู ณ เวลาใด ไม่ต้องเลื่อนไปดูตั้งแต่ต้น Clip ครับ

https://youtu.be/e7quHzzLO7g?t=444

ดู Data Type Conversion (การแปลง Data Type) ได้ที่ Link นี้ครับ
https://learn.microsoft.com/en-us/offic ... -functions
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#5

Post by wisitsakbenz »

เรียน อาจารย์ 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
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#6

Post by snasui »

snasui wrote: Wed Dec 14, 2022 4:14 pm สามารถแก้ไขเฉพาะหน้าโดยในตอนนำไปใช้ให้แปลงกลับเป็น Number ด้วยวิธีการใด ๆ
:roll: คุณ wisitsakbenz เข้าใจประโยคข้างบนว่าอย่างไรครับ :?:

สิ่งที่ถามมาตามโพสต์ viewtopic.php?p=114424#p114420 นั้นเป้นขั้นตอนการนำไปใช้หรือขั้นตอนของการบันทึกเข้าไปครับ :?:
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#7

Post by wisitsakbenz »

เรียน อาจารย์ Snasui
สามารถแก้ไขเฉพาะหน้าโดยในตอนนำไปใช้ให้แปลงกลับเป็น Number ด้วยวิธีการใด ๆ เช่นเขียนเขียน Code เข้าไปจัดการเพื่อ Convert ให้กลายเป็น Data Type ที่ต้องการเสียก่อนครับ
ตอนแรก ผมเข้าใจว่า ---> อาจารย์ให้ลองเขียน Code มาดู
แต่ตอนนี้ผมเข้าใจว่า ---> แก้ไขโดยการลบ ' ออก ใน Sheet "All Data Estimated" ใช่หรือไม่ครับ อาจารย์
ผมเข้าใจถูกหรือไม่ครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#8

Post by snasui »

:D ไม่ใช่ครับ

ความหมายคือ ไม่ต้องสนใจว่าบันทึกเข้าไปแล้วได้ Data Type ใด ให้สนใจตอนดึงมาใช้งาน หากมันไม่แสดงเป็นตัวเลขให้ใช้ Code เข้าไปแปลงให้เป็นตัวเลขครับ
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#9

Post by wisitsakbenz »

เรียน อาจารย์ 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.
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#10

Post by snasui »

wisitsakbenz wrote: Wed Dec 14, 2022 10:30 pm มีผลต่อการใช้งานครับ ต้องนำค่ามารวมกันครับ
:D ค่อย ๆ ถามตอบกันไปครับ จากประโยคด้านบน รวมที่ไหนเมื่อไรครับ :?:
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#11

Post by wisitsakbenz »

เรียน อาจารย์ Snasui

จะ Sum (E22+G22) ครับอาจารย์
จากไฟล์นี้ค่าที่ดังออกมา สามารถรวมได้ปกติ แต่ใช้งานจริง บาง Fields ที่เป็น Text จะไม่สามารถรวมได้ครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#12

Post by snasui »

:D สามารถเขียนบวกกันธรรมดาได้เลยครับ

=E22+G22

หรือมีปัญหาใดครับ :?:
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#13

Post by wisitsakbenz »

เรียน อาจารย์ 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.
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#14

Post by snasui »

:D แนบไฟล์นั้นมาและตัดมาเป็นตัวอย่างจะได้เห็นว่าบวกอย่างไร ผิดอย่างไร จะได้แก้ปัญหาได้ถูกจุดครับ
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#15

Post by wisitsakbenz »

เรียน อาจารย์

ไฟล์จริงมีขนาดใหญ่ เลยตัดให้เฉพาะส่วนที่คำนวณครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#16

Post by snasui »

:D ปรับสูตรเป็นด้านล่างครับ

=SUMPRODUCT(--A1:B12)

สิ่งที่ผมแนะนำให้แก้คือ Loop ไปแก้ที่ไฟล์นี้ซึ่งเป็นการนำไปใช้งาน เพื่อแปลงค่าแต่ละเซลล์ให้เป็น Number เสียก่อน แต่ดูเหมือนจะไม่เข้าใจในสิ่งที่แนะนำไป กลับพยายามจะไปปรับ Code ในตอนบันทึกอยู่ตลอดเวลา :P
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: ใส่เป็นตัวเลข 5000 แต่ถูกจัดเก็บ เป็น '5000

#17

Post by wisitsakbenz »

เรียน อาจารย์ Snasui
=SUMPRODUCT(--A1:B12)

สิ่งที่ผมแนะนำให้แก้คือ Loop ไปแก้ที่ไฟล์นี้ซึ่งเป็นการนำไปใช้งาน เพื่อแปลงค่าแต่ละเซลล์ให้เป็น Number เสียก่อน แต่ดูเหมือนจะไม่เข้าใจในสิ่งที่แนะนำไป กลับพยายามจะไปปรับ Code ในตอนบันทึกอยู่ตลอดเวลา :P
สูตรนี้ใช้ได้แล้วครับ
ขอโทษอาจารย์ด้วยครับ ขอบคุณอาจารย์ที่แนะนำครับ
ขอบคุณครับ
Post Reply