: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

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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#9

by March201711 » Sun Feb 02, 2020 6:45 pm

ไดเแล้วค่ะ ขอบคุณมากค่ะ :D

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#8

by snasui » Sun Feb 02, 2020 6:23 am

:D ตัวอย่าง Code ครับ

Code: Select all

Dim strMth As String, d As Date
Dim rngSource As Range, rngTg As Range
With Workbooks("Source_data.xlsx").Worksheets("Data")
    strMth = Application.Text(.Range("a1").Value, "mmm")
    d = .Range("a1").Value
    Set rngSource = .Range("a3:d3")
End With
With Workbooks("DailyWork.xlsm")
    With .Worksheets(strMth)
        Set rngTg = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0)
        rngTg.Value = d
        rngTg.Offset(0, 1).Resize(1, 4).Value = rngSource.Value
    End With
End With

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#7

by March201711 » Sat Feb 01, 2020 1:58 pm

ถ้า key วันที่ที่ทำงานที่ File : Source_data ที่ Cell A1 แล้วให้ vba ดึงข้อมูลไปวางที่ file : DailyWork ต่อจากบรรทัดก่อนหน้านี้
ถ้าเป็นเดือนถัดไปให้ vba ไปวางที่sheet ของเดือนนั้นๆ เช่น
ถ้า cell A1 เป็นวันที่ 1/2/20 ให้ vba ดึงข้อมูลที่ row A3:D3 ไปวางที่ file : DailyWork ที่ sheet : Feb

***พอ click run marco แล้ว vba ดึงข้อมูลมาวางที่ cell เดิม อยากให้ vba วางข้อมูลต่อจากบรรทัดก่อนหน้านั้นค่ะ
Attachments
Source_data.xlsx
(8.98 KiB) Downloaded 16 times
DailyWork.xlsm
(37.59 KiB) Downloaded 16 times

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#6

by snasui » Sat Feb 01, 2020 10:52 am

:D ปรับจากที่ผมตอบใน #2 มาเองดูก่อน ติดแล้วค่อยถามกันต่อครับ

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#5

by March201711 » Sat Feb 01, 2020 10:48 am

ถ้าไม่ใช้formula ให้ vbaวางเป็น value เลย โดยให้ vba รู้เองว่าดึงตามวันที่ที่ cell A1 ที่ file source ค่ะแล้วถ้ามีsheet เดือน ถัดไปให้ vba รู้ได้เอง และวางข้อมูลในบรรทัดถัดไปค่ะ

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#4

by snasui » Sat Feb 01, 2020 9:38 am

:D งานแบบนี้เมื่อใช้ VBA แล้วก็ไม่จำเป็นต้องใช้สูตร ให้คัดลอกรายการที่ตรงวันมาวางได้เลยครับ

ให้คัดลอกข้อมูลของแต่ละวันมาวางให้ตรงกับบรรทัดของวันนั้น ๆ แทน ไม่ทราบติดปัญหาอะไรถึงพยายามใช้วิธีการตามที่อธิบายมาครับ :?:

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#3

by March201711 » Sat Feb 01, 2020 8:50 am

ได้แล้วค่ะ :D
มีปัญหาอีกเรื่องนึงค่ะ เรื่องการ อัพเดทข้อมูลในวันถัดไปคือว่า ต้องการ copy บรรทัดก่อนหน้านั้นลงมาอีกบรรทัดนึงเพื่อเตรียมข้อมูลมารับรอง formula แต่บรรทัดก่อนหน้านั้นต้อง paste ข้อมูลเป็น value ก่อน ซึ่งข้อมูลวันก่อนนั้นสำคัญจำเป็นต้องเก็บไว้ค่ะ และข้อมูลมีเยอะมาก แต่ต้องเสียเวลามาปรับมืองเองตลอด เลยมีความจำเป็นต้องใช้ vba เข้าช่วย พอทำแล้วติดปัผญหาต้องมาปรับ line บรรทัดถัดไป ตรงrang มีวิธีให้ code รู้ไว้เองไหมคะ
Attachments
DailyWork.xlsm
(18.62 KiB) Downloaded 12 times
Source_data.xlsx
(8.39 KiB) Downloaded 10 times

Re: vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#2

by snasui » Fri Jan 31, 2020 11:09 pm

:D ตัวอย่าง Code ครับ

Code: Select all

Dim dayOfMth As Variant, dataAll As Range
Dim rngCur As Range, r As Range
With Workbooks("Daily_rate.xlsx").Worksheets("AVG_SGD")
    Set dataAll = .Range("b3:m33")
End With
With Workbooks("BOT_rate.xlsm").Worksheets("Rate_BOT")
    dayOfMth = VBA.Split(VBA.Mid(.Range("a1"), VBA.InStr(.Range("a1"), "as of") + 6), " ")
    Set rngCur = .Range("b:b").Find("SGD").Offset(0, 3)
End With
For Each r In dataAll
    If r.Parent.Cells(r.Row, "a").Value = "Day " & dayOfMth(0) And _
        Application.Text(r.Parent.Cells(2, r.Column), "[$- ]mmmm") = dayOfMth(1) Then
        r.Value = rngCur.Value
        Exit For
    End If
Next r

vba ดึงข้อมูลตามวันเดือนปี ทุกวัน

#1

by March201711 » Fri Jan 31, 2020 4:42 pm

ต้องการ copy rate SGD ในแต่ละวันที่ column E มาใส่ที่ file : Daily_rate เป็นวันที่ตามเดือน

เช่น ดูที่ Row A1 : Foreign Exchange Rates as of 30 January 2020 เป็นวันที่ 30/01/2020 ให้เอาสกุล SGDที่ column E14 มาใส่ที่ file : Daily_rate ที่ Cell B32
BOT_rate.xlsm
(29.8 KiB) Downloaded 18 times
Attachments
Daily_rate.xlsx
(140.03 KiB) Downloaded 17 times

Top