ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1992|回复: 10

[已解决] (緊急求助) 抓網上股利資料,將股票代號輸出excel即可得呈現

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-8-24 14:56 | 显示全部楼层 |阅读模式
本帖最后由 bioleon 于 2016-8-24 15:09 编辑

小弟跟各位前輩大大請安也是第一次來到此論壇
打算跟著各位大大好好學習
想請教大大
想要實現的以下的狀況
該怎麼做

想實現的:
在Excel A1格內輸入股價代號,內容可從A3跑出
網頁抓取是這個網址
https://tw.stock.yahoo.com/d/s/dividend_2330.html
並且旁邊可弄一個按鈕  (查詢)
在A1輸入股票代號後在按下查詢按鈕
即可在A3呈現資料,並且再度查詢的同時會把上一筆資料刪除
然後表格可以在EXCEL美化編輯
不會導致查詢按鈕一按,表格也隨即消失

程式碼是從本版的此篇看到
[原创]不懂html也来学网抓(xmlhttp/winhttp+fiddler)

程式碼

Sub 股利查詢()
    Cells.Delete
    With ActiveSheet.QueryTables.Add("url;https://tw.stock.yahoo.com/d/s/dividend_2330.html", Range("a3"))
        .WebFormatting = xlWebFormattingNone '不包含格式
        .WebSelectionType = xlSpecifiedTables '指定table模式
        .WebTables = "8" '第2?table
        .Refresh False
    End With
End Sub


自己修改後遇到三個問題
1.不知道怎麼設定到A1,輸入股價即可查詢
2.把以上程式碼複製到按鈕的程式碼內
Private Sub CommandButton1_Click()
(複製到此)
End Sub

結果一直出現錯誤
3.表格沒辦法編輯,執行巨集一按下去重新查了之後
表格馬上就不見



以上的問題可能在大大眼中只是非常基礎的東西
甚至很多人問過
但小弟資質不太夠..真的完全不知道怎麼弄
還是決定發文請求協助






TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-24 18:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
麻煩各位大大了 感謝

TA的精华主题

TA的得分主题

发表于 2016-8-24 19:46 | 显示全部楼层
bioleon 发表于 2016-8-24 18:04
麻煩各位大大了 感謝

是不是这样的效果

工作簿.rar

11.84 KB, 下载次数: 29

TA的精华主题

TA的得分主题

发表于 2016-8-24 20:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
试试吧:
  1. Private Sub CommandButton1_Click()
  2.     Dim strURL$
  3.     strURL = "https://tw.stock.yahoo.com/d/s/dividend_" & [A1].Value & ".html"
  4.     [A3].CurrentRegion.Clear
  5.     With ActiveSheet.QueryTables.Add("url;" & strURL, Range("a3"))
  6.         .WebFormatting = xlWebFormattingNone '不包含格式
  7.         .WebSelectionType = xlSpecifiedTables '指定table模式
  8.         .WebTables = "8" '第2?table
  9.         .Refresh False
  10.     End With
  11. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-25 07:43 | 显示全部楼层
ammyc
CC例例
非常感謝兩位大大無私的幫忙
都可以使用!非常感謝
現在要開始研究兩位大大不同的程式碼
打算從實務開始著手進入VB的世界
希望兩位日後財源滾滾
身體健康 萬事如意!!


TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-25 13:50 | 显示全部楼层
本帖最后由 bioleon 于 2016-8-25 17:44 编辑

今日已研究了實務上兩位大大的函數
也成功可以使用,應用
在a1輸入查詢之後
於a3將資料全部輸出非常感謝!

過程中發現到WebFormatting這個函數
可以設定輸出資料為來源表格格式




請教,如第一篇所提問

我需要編輯,想要自行設計一個表格格式
讓A3輸出的資料在我編輯好的表格格式內
有什麼方法可以做到嗎?
是否會非常複雜困難?




Private Sub CommandButton1_Click()
    Dim strURL$ '宣告strURL為變數
    strURL = "https://tw.stock.yahoo.com/d/s/dividend_" & [A1].Value & ".html" '定義strURL變數內容
    [A3].CurrentRegion.Clear
    With ActiveSheet.QueryTables.Add("url;" & strURL, Range("a3"))
        .WebFormatting = xlWebFormattingNone '(NONE)不包含格式,(ALL)包含格式
        .WebSelectionType = xlSpecifiedTables '指定table表格模式
        .WebTables = "8" '第2個table表格
        .Refresh False
    End With
End Sub



TA的精华主题

TA的得分主题

发表于 2016-8-25 19:50 | 显示全部楼层
bioleon 发表于 2016-8-25 13:50
今日已研究了實務上兩位大大的函數
也成功可以使用,應用
在a1輸入查詢之後

[A3].CurrentRegion.ClearFormats

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-26 08:15 | 显示全部楼层
CC大 您好 感謝您指導
馬上進行演練

您回復的指導文中
意思是
[A3].CurrentRegion.Clear 替換成
[A3].CurrentRegion.ClearFormats 是這樣嗎?
如果是的話,實際操作似乎會有問題
會寫入第二筆資料,並且出現偵錯

另外
如果在A1如果沒有輸入文字或者查詢不到資料的狀況
在A1沒有打代號,或者代號打錯,或者隨便亂打中文
能不能設定在B1格子顯示"請輸入正確股價代號"
可以實現這樣的結果嗎?
非常感謝~~~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-26 20:21 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-27 17:52 | 显示全部楼层
求解~~~頂~~
希望有大大可以指導~~感謝您
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-10-6 02:20 , Processed in 0.042677 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表