Page 1 of 3

ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Fri Apr 20, 2018 11:43 am
by March201711
สอบถามค่ะ ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT ให้คะ

Code: Select all

Sub OpenBrowseBOT()
    Dim ie As Object
    Set ie = CreateObject("Internetexplorer.Application")
    ie.Visible = True

    MsgBox " finished "
End Sub

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Fri Apr 20, 2018 11:51 am
by March201711
เอกสารแนบค่ะ
Click ปุ่มแล้ว ไม่โชว์หน้า web Exchange BOT ค่ะ เป็นรูปว่างเปล่า

ยังไงรบกวนช่วย โหลด file : Test1.xlsx แล้ว save as เป็น Test1.xlsm ด้วยนะคะ ขอบคุณค่ะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Fri Apr 20, 2018 6:39 pm
by snasui
:D ไฟล์ที่แนบมาไม่มี Macro ครับ

ไฟล์ที่จะมี Macro ได้จะต้องมีนามสกุลเป็น .xlsm เป็นอย่างน้อย หากเปลี่ยนนามสกุลเป็น .xlsx แล้ว Macro จะถูกลบทิ้ง หากจะให้มี Macro จะต้องเขียนหรือ Import เข้าไปใหม่ ไม่ใช่แค่การ Save As เป็น .xlsm ครับ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Fri Apr 20, 2018 8:37 pm
by March201711
ทำใหม่แล้วค่ะ ตามที่แนบไปค่ะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Fri Apr 20, 2018 9:13 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Sub OpenBrowseBOT()
    Dim ie As Object
    Set ie = CreateObject("Internetexplorer.Application")
    ie.Visible = True
    ie.navigate "https://www.google.com"
    MsgBox " finished "
End Sub

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Fri Apr 20, 2018 9:21 pm
by March201711
ไว้จะลองทำดูนะคะ ขอบคุณค่ะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Mon Apr 23, 2018 10:47 am
by March201711

Code: Select all

Sub OpenBrowseBOT()
    Dim ie As Object
    Set ie = CreateObject("Internetexplorer.Application")
    ie.Visible = True
    ie.navigate "https://www.bot.or.th/Thai/Statistics/FinancialMarkets/ExchangeRate/ExchangeRate_EN_PDF/ER_PDF_20042018.PDF"

    MsgBox " finished "
End Sub
ตัวที่เป็นอักษรสีแดง " ER_PDF_20042018.PDF" ถ้าจะให้มัน run ตามวันที่ปัจจุบัน - 1 แล้วติดวันหยุดอีก 2 วัน เป็น -2 ต้องปรับ code อย่างไรบ้างคะ
เช่น ถ้าพรุ่งนี้เป็นวันที่ 24 เราเรียกข้อมูลจาก exhange rate BOT จะขึ้นเป็นวันที่ 23 ต้องเป็น "ER_PD_23042018.PDF" ค่ะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Mon Apr 23, 2018 9:54 pm
by snasui
:D หากถ้าปัจจุบันเป็นวันจันทร์, วันเสาร์ หรือ วันอาทิตย์ ต้องการให้ดึงข้อมูลวันไหนครับ :?:

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Mon Apr 23, 2018 9:59 pm
by March201711
ให้ดึงข้อมูลวันศุกร์ค่ะ นับวันทำการในการทำงานค่ะ
เช่น พรุ่งนี้วันอังคารก็ให้ดึงข้อมูลวันจันทร์ ไปเรื่อยๆ พอถึงวันหยุดจะไม่นับค่ะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Mon Apr 23, 2018 10:30 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Sub OpenBrowseBOT()
    Dim ie As Object, s As String, i As Integer
    Select Case Weekday(Date, vbMonday)
        Case 7
            i = -2
        Case 1
            i = -3
        Case Else
            i = -1
    End Select
    s = Format(DateAdd("d", i, Date), "ddmmyyyy")
    Set ie = CreateObject("Internetexplorer.Application")
    ie.Visible = True
    ie.navigate "https://www.bot.or.th/Thai/Statistics/FinancialMarkets/ExchangeRate/ExchangeRate_EN_PDF/ER_PDF_" & s & ".PDF"
    MsgBox " finished "
End Sub

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Tue Apr 24, 2018 10:01 am
by March201711
:D ได้แล้วค่ะ ขอบคุณอาจารย์มากค่ะ :D

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Tue Apr 24, 2018 10:05 am
by March201711
มีคำถามนิดนึงค่ะ Object String และInteger แตกต่างกันอย่างไรคะ ช่วยอธิบายเป็นความรู้ในการประยุกต์ใช้กับงานอื่นๆ หน่อยค่ะอาจารย์

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Tue Apr 24, 2018 7:00 pm
by snasui
March201711 wrote: Tue Apr 24, 2018 10:05 am มีคำถามนิดนึงค่ะ Object String และInteger แตกต่างกันอย่างไรคะ ช่วยอธิบายเป็นความรู้ในการประยุกต์ใช้กับงานอื่นๆ หน่อยค่ะอาจารย์
:D ทั้งหมดนั้นเป็น Data Type ศึกษาได้จาก Link นี้ครับ https://msdn.microsoft.com/en-us/vba/la ... pe-summary

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Tue Apr 24, 2018 10:08 pm
by March201711
ขอบคุณค่ะอาจารย์ แต่ไม่เข้าใจตรงที่code นี้ค่ะ ความหมายคืออย่างไรค่ะ จะได้เอาไปประยุกต์ใช้กับ file อื่นค่ะ

Code: Select all

 Select Case Weekday(Date, vbMonday)
        Case 7
            i = -2
        Case 1
            i = -3
        Case Else
            i = -1 
End Select

แล้วถ้าติดวันหยุดพิเศษ อย่างวันสงกานต์ที่ตามมา ที่หยุดติดต่อกัน หยุดเพิ่มอีก 3 วัน ที่ผ่านมาหรือวันหยุดวันที่ 1 พค 61วันแรงงานที่จะถึงไม่กี่วัน ต้องปรับ code อย่างไรคะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Wed Apr 25, 2018 6:10 am
by snasui
:D Code นั้นเป็นการกำหนดตัวแปร i โดยตรวจสอบว่าวันที่ปัจจุบันเป็นวันใด

หากเป็นวันจันทร์ให้ตัวแปร i มีค่าเป็น -3
หากเป็นวันอาทิตย์ให้ตัวแปร i มีค่าเป็น -2
หากเป็นวันอื่น ๆ ให้ตัวแปร i มีค่าเป็น -1

เพื่อที่จะนำไปบวกกับวันที่ปัจจุบันให้กลายเป็นวันก่อนหน้าที่ต้องการ

กรณีมีวันหยุดอื่น ๆ จะต้องมีตารางวันหยุดเอาไว้ตรวจสอบแล้วค่อยเขียน Code เข้าไปตรวจสอบ การเขียน Code ต้องพยายามเขียนตามที่ตนต้องการมาเองก่อน ติดแล้วค่อยถามกันครับ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Wed Apr 25, 2018 9:25 am
by March201711
ถ้าสร้าง file ใหม่เป็นวันหยุดตามแบงค์ชาติ สามารถทำได้ไหมคะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Wed Apr 25, 2018 7:21 pm
by snasui
:D สร้างไฟล์ใหม่แล้วก็ต้องเขียน Code ให้นำวันหยุดนั้นมาใช้ด้วย ติดตรงไหนนำมาถามกันต่อครับ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Wed Apr 25, 2018 8:55 pm
by March201711
ลองเขียนใหม่แต่ก็ยังติดอยู่นะค่ะ ต้องปรับสูตรอย่างไรบ้างคะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Wed Apr 25, 2018 8:56 pm
by March201711
แนบไป2file แต่พอส่งกดโพสต์ไปแค่ file เดียว ขออนุญาติส่งเพิ่มอีก 1 file ค่ะ

Re: ทำไม click code vba run แล้วไม่เปิดหน้า Browser BOT

Posted: Wed Apr 25, 2018 9:09 pm
by snasui
:D ไม่มี Code สำหรับการค้นหาวันที่เป็นแค่การเปลี่ยน Drive ไปยังตำแหน่งไฟล์ Holiday.xlsx เท่านั้น

สิ่งที่ต้องทำคือเปิดไฟล์ Holiday.xlsx แล้วนำวันที่ปัจจุบันไปตรวจสอบว่าตรงกับวันที่เท่าไร วันที่ก่อนหน้านั้นเป็นวันหยุดหรือไม่ หากเป็นวันหยุด วันที่ก่อนหน้านั้นเป็นวันหยุดหรือไม่ Loop ไปจนพบวันที่ที่ไม่ใช่วันหยุด นำวันที่นั้นมาใช้ต่อ เช่นนั้นเป็นต้น

หากยังเขียน Loop ไม่เป็นให้ศึกษามาจากแหล่งอื่นก่อนเช่น Youtube เป็นต้น ตัวอย่างการ Loop ในฟอรัมนี้ก็มีจำนวนมากครับ

ตัวอย่างการ Loop เบื้องต้นครับ

https://youtu.be/UvwxU8e0nkg
https://youtu.be/e7quHzzLO7g
https://youtu.be/JhR3KZ5IffA