ฉันจะดาวน์โหลดราคาหุ้นใน Excel 2013 ได้อย่างไร มีฟังก์ชันเทียบเท่ากับสเปรดชีต GoogleFinance ของ Google Doc หรือไม่


8

ในสเปรดชีต Google เอกสารฉันสามารถใช้สูตรเซลล์นี้:

=GoogleFinance("GOOG", "price")

เพื่อดาวน์โหลดราคาหุ้นล่าสุด มีฟังก์ชันที่เทียบเท่าใน Excel 2013 หรือไม่

Excel เวอร์ชันก่อนหน้ามีคุณสมบัติสมาร์ทแท็กที่ดาวน์โหลดข้อมูลมากมายสำหรับแต่ละทิกเกอร์ (จริง ๆ แล้วถ้าคุณต้องการราคา) และฉันเคยเห็นแหล่งข้อมูลที่แนะนำแอป Bing Financeสำหรับ Excel 2013 น่าเสียดาย สิ่งนี้ถูกยกเลิก

มีวิธีง่าย ๆ ในการทำเช่นนี้? ฉันแค่ต้องการราคาล่าสุดและฉันไม่สนใจว่ามันจะล่าช้าหรือไม่มาจาก Yahoo Finance และอื่น ๆ สมมุติว่าฉันสามารถเขียนรหัส VBA เพื่อดาวน์โหลดไฟล์ CSV จาก YF แยกวิเคราะห์ได้ แต่ฉัน หวังว่าจะหลีกเลี่ยงการสร้างเวิร์กบุ๊กที่เปิดใช้งานมาโคร


นี่ไม่ใช่คุณสมบัติที่ Excel รองรับนอกกรอบ
Ramhound

1
ใน excel 2007/2010 ใช้data - existing connection - MSN MoneyCentral Investory Stock Quotesงานได้หรือไม่สิ่งนี้ถูกลบสำหรับ 2013 แก้ไข - ใช่ดูเหมือนว่าจะถูกลบออกและ Bing Finance App เป็น "การแทนที่" คุณสามารถตั้งค่าdata - from webแบบสอบถามเป็นเงิน msn แต่นั่นน่าเบื่อ
Raystafarian

@Raystafarian ฉันจะตั้งค่าการสืบค้นข้อมูลใหม่ได้อย่างไร
Michael A

ดูเหมือนว่าคุณอาจจำเป็นต้องใช้ข้อความค้นหาพลังงานในแหล่งข้อมูล
Raystafarian

1
@harrymc ฉันไม่ใช่ OP แต่ฉันคิดว่าคำตอบที่มีค่าที่สุดคือสิ่งที่ใช้ฟังก์ชันที่มีอยู่ใน Excel 2013 และ / หรือเป็นอิสระ
Excellll

คำตอบ:


5

คุณสามารถใช้ UDF เช่นนี้ -

Option Explicit

Public Function GetTickerPrice(ByVal ticker As String) As Double

    Dim IE As Object
    Dim pageData As Object

    Set IE = CreateObject("InternetExplorer.Application")
    Dim URL As String
    URL = "http://www.msn.com/en-us/money/stockdetails/fi-126.1." & ticker & ".NAS?symbol=" & ticker & "=PRFIMQ"

    IE.Navigate URL

     Do Until IE.ReadyState >= 4
            DoEvents
     Loop

     Application.Wait Now + TimeSerial(0, 0, 5)

     Set pageData = IE.document

     GetTickerPrice = pageData.getElementsByClassName("precurrentvalue")(0).innertext

     Set IE = Nothing
     Set pageData = Nothing
End Function

ตอนนี้คุณสามารถใช้GetTickerPrice("GOOG")และรับราคาปัจจุบัน


ฉันนำสิ่งนี้ไปที่Codereview.SEสำหรับการป้อนข้อมูลบางอย่าง


2
การจัดรูปแบบเป็น Double แทน Long จะเป็นการดีที่สุดหรือไม่ดังนั้นคุณจะไม่สูญเสียข้อมูลทศนิยม? จากนั้นผู้ใช้สามารถตัดสินใจได้ว่าพวกเขาต้องการที่จะปัดเศษมัน
Jonno

ขอบคุณมันใช้งานได้! แต่มันเป็นจริงๆช้า - ประมาณ 20 วินาทีที่จะได้รับราคาหุ้นหนึ่ง ฉันสมมติว่าเปิด IE และโหลด URL มีปัญหาคอขวด อย่างไรก็ตามมีการรับรอบนี้
Excellll

@ Jonno ใช่ฉันเห็น Excellll ทำการเปลี่ยนแปลง
Raystafarian

@Excellll ฉันจะพยายามดูว่ามีวิธีแก้ไขอยู่หรือเปล่าบางทีบังคับให้ IE ทำงานเงียบ แต่ถ้าเราไม่สามารถหาฐานข้อมูลอย่างที่เคยเป็นมาเราอาจจะติดอยู่ (อย่างน้อยก็สำหรับ excel รุ่นเก่า)
Raystafarian

1
@Excellll มีการตอบสนองที่ค่อนข้างดีที่ CodeReviewกับแนวทางของฉัน ดูเหมือนว่าจะแตกต่างกันมากพอที่จะไม่ถือว่าเป็นคำตอบของฉัน
Raystafarian


-1

มี Add-In ที่เรียกว่าStock Quote Add-In สำหรับ Excel 2013ซึ่งทำเช่นนี้และมีรุ่นสำหรับปี 2013 โดยส่วนตัวแล้วฉันไม่สามารถใช้งานได้ แต่มันมีมาหลายปีแล้ว .


2
ยินดีต้อนรับสู่ Super User นี่จะช่วยตอบคำถาม แต่คุณสามารถเพิ่มข้อมูลเกี่ยวกับวิธีการใช้ปลั๊กอินนี้ได้หรือไม่?
LJD200
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.