: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

การเขียน Code VBA รับค่าจาก Cell

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
GTE
Member
Member
Posts: 6
Joined: Wed Feb 05, 2014 12:50 pm

การเขียน Code VBA รับค่าจาก Cell

#1

Post by GTE »

สวัสดีครับ อาจารย์

มีเรื่องรบกวนสอบถามครับ คือ ผมต้องการจะสร้างเงื่อนไขเพื่อรับค่าจาก Cell ดังตารางในรูปครับ สมมติผมมีค่าอยู่ 1 ค่า (ChainageFind(i)) ซึ่งมีค่าอยู่ระหว่างค่าใน Column B และ C และผมต้องการเก็บค่าจาก Column D และ E Crossfall1(i) และ Crossfall2(i) สมมติว่าผมมีค่าเท่ากับ 295 มีค่าอยู่ระหว่าง 291 - 365 ซึ่ง จะเก็บค่า -1.5 กับ 3.5 จะต้องเขียน Code อย่างไรครับ ขอคำแนะนำด้วยครับ

Code: Select all

    If ChainageFind(i) >= ChainageStart(i) Or ChainageFind(i) < ChainageEnd(i) Then
        Crossfall1(i) = Worksheets("Crossfall data (LT)").Cells(i + 4, 4)
        Crossfall2(i) = Worksheets("Crossfall data (LT)").Cells(i + 4, 5)
    End If
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31032
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียน Code VBA รับค่าจาก Cell

#2

Post by snasui »

:D แนบไฟล์ตัวอย่างพร้อมตัวอย่างคำตอบที่ต้องการมาด้วยครับ
GTE
Member
Member
Posts: 6
Joined: Wed Feb 05, 2014 12:50 pm

Re: การเขียน Code VBA รับค่าจาก Cell

#3

Post by GTE »

รบกวนด้วยครับอาจารย์ ตามไฟล์แนบครับ เป็นการเทียบบัญญัติยางค์ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31032
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียน Code VBA รับค่าจาก Cell

#4

Post by snasui »

:D จากตัวอย่างคำตอบที่ต้องการ เซลล์ D17 มีค่าเป็น 0 ไม่ทราบว่ามาได้อย่างไรครับ

จากที่อธิบายมาด้านบน แสดงว่าต้องการจะเก็บค่า Crosfall ที่เป็น Start และ End ถ้าอ่านตามโจทย์ คำตอบที่ D17 ควรเป็น -1.5 (Start และ End มีค่าเท่ากัน)
GTE
Member
Member
Posts: 6
Joined: Wed Feb 05, 2014 12:50 pm

Re: การเขียน Code VBA รับค่าจาก Cell

#5

Post by GTE »

ต้องขอโทษอาจารย์ด้วยครับ คำตอบที่ D17 จริงๆ แล้วเท่ากับ -0.892 ซึ่งมาจาก -1.5+((300-291)/(365-291))*(3.5-(-1.5)) ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31032
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียน Code VBA รับค่าจาก Cell

#6

Post by snasui »

:D การทำเช่นนั้นสามารถใช้สูตรมาช่วยได้ครับ

ที่ D17 คีย์สูตร

=VLOOKUP(B17,$B$5:$E$13,3)+((B17-VLOOKUP(B17,$B$5:$E$13,1))/(VLOOKUP(B17,$B$5:$E$13,2)-VLOOKUP(B17,$B$5:$E$13,1)))*(VLOOKUP(B17,$B$5:$E$13,4)-VLOOKUP(B17,$B$5:$E$13,3))

Enter > Copy ลงด้านล่าง
GTE
Member
Member
Posts: 6
Joined: Wed Feb 05, 2014 12:50 pm

Re: การเขียน Code VBA รับค่าจาก Cell

#7

Post by GTE »

สูตรของอาจารย์สามารถใช้ได้เลยครับ ขอบคุณอาจารย์มากครับ
Post Reply