之前在一個共用的excel裡,(實際是用google試算表)常發現就算是某些被鎖定的區域,公式的位置有時候還是會跑掉,原本以為是甚麼bug,困擾了很久。
前一陣子才想到可能是excel本身的功能,就是如果移動目標儲存格,原本有用到該儲存格的公式中對應的儲存格位置也會修改。本來這是一個很方便的功能,但在這種協同編輯的表格裡面就變成一種惡夢。
所以找到這個方法後以後公式應該不會再出錯了吧。
然後這個公式可以不用參照,例如:
=INDIRECT("A1")
這樣就是直接指向A1,而非A1的參照。
語法
INDIRECT(ref_text, [a1])
INDIRECT 函數語法具有下列引數:
Ref_text 必要。單一儲存格的參照,其中包含 A1 樣式參照、R1C1 樣式參照、定義為參照的名稱,或定義為文字字串的儲存格參照。如果 ref_text 不是有效的儲存格參照,INDIRECT 會傳回 #REF! 錯誤值。
如果 ref_text 參照另一個活頁簿 (外部參照),則必須開啟另一個活頁簿。如果來源活頁簿未開啟,INDIRECT 會傳回 #REF! 錯誤值。
附註 Excel Web App 不支援外部參照。
如果 ref_text 參照的儲存格範圍超出 1,048,576 的列限制或 16,384 (XFD) 的欄限制,INDIRECT 會傳回 #REF! 錯誤。
附註 在 Microsoft Office Excel 2007 之前的舊版 Excel 中,此行為是不同的,會忽略超出的限制並傳回值。
A1 選用。指定 ref_text 儲存格中所包含參照類型的邏輯值。
如果 a1 為 TRUE 或省略,則 ref_text 會被解釋成 A1 樣式參照。
如果 a1 為 FALSE,則 ref_text 會被解譯成 R1C1 樣式參照。
https://support.office.com/zh-tw/article/INDIRECT-%E5%87%BD%E6%95%B8-474b3a3a-8a26-4f44-b491-92b6306fa261
##title##
2016年11月17日
2016年8月21日
外公的西瓜
外公是個純樸的農夫,曾聽他說,牛會流淚,是有感情的動物。而他回應的感情,是一輩子不吃牛肉,因為那是他的伙伴。外公不會要求子孫跟他一樣,他不論對子孫或伙伴都很好。
每次看見外公,他總是很慈祥的微笑。過年的時候總不願意收我們這些孫子的紅包,即使這絲毫不會造成我們的負擔,他依舊要用他的方式來照顧我們每一個人。
以往夏天,能吃到他種的西瓜是最幸福的消暑方式。拿鐵湯匙,挖進切一半的紅色冰涼西瓜。總是很甜,那是外公汗水換來的甜。
每次看見外公,他總是很慈祥的微笑。過年的時候總不願意收我們這些孫子的紅包,即使這絲毫不會造成我們的負擔,他依舊要用他的方式來照顧我們每一個人。
以往夏天,能吃到他種的西瓜是最幸福的消暑方式。拿鐵湯匙,挖進切一半的紅色冰涼西瓜。總是很甜,那是外公汗水換來的甜。
這個夏天後,再也嘗不到這樣的西瓜了。
謝謝您教我善良,謝謝您教我樸實,路上好走。
--
2016/8/20 22:25,外公沒有病痛了。
謝謝您教我善良,謝謝您教我樸實,路上好走。
--
2016/8/20 22:25,外公沒有病痛了。
2016年5月5日
Alienware Area 51-R2
之前為了工作順便圓阿宅夢,買過一台 Alienware M14x R2 Laptop 整新機。
用了以後覺得 Alienware 實在相當中二,非常適合想回去當屁孩的大叔我,於是開始走向中二之路。
後來陸續又買中二滑鼠 Tt eSPORTS Level 10 M一個放公司一個放家裡。
然後當我看到 Alienware Area 51-R2 的中二機殼後,整個覺得實在是太狂。
一直很想找一個能這麼中二造型的機殼,但都找不太到,原本想說先買個中二RGB機械鍵盤壓壓驚。
結果清明節連假被同樣喜歡 Alienware 的前同事通知,Dell Outlet Alienware 竟然有七折優惠碼活動!
心理內心OS:實~在~太~狂~啊~啊~啊~!㊣乂↖煞氣a七折↘乂㊣
然後又看到一台規格感覺還蠻便宜的...於是乎,經歷了將近一個月的等待...(海關卡好久)
今天出門就不小心踢到這個箱子...
簡單開箱:
外觀&內部:
其實對我來說中二機殼才是主體,其他都是附加的。附加的東西如下:
CPU:Intel i7-5820K(附水冷散熱器)Haswell E 6C12T 3.3~3.60 GHz(22 nm,PCI Express 3.0,線道數量上限 28,最大記憶體通道數量4,最大記憶體大小64 GB)
MB:X99晶片組(OEM)
Video Card:Dual NVIDIA GeForce GTX 980 SLI(980大概只能吃PCIe3.0 x 8)
RAM:16GB Quad Channel DDR4 at 2133MHz(4 x 4G走四通道)
SSD:128GB 2.5 inch
HD:2TB SATA Hard Drive 7200 RPM
PSU:Alienware 850W(OEM)
OS:Windows 8.1 (Free Upgrade to Windows 10 Home) 64BIT(英語)
Others:
機殼底座
8X DVD +/- RW Drive(吸入式)
Intel 7260AC Dual-Band 2x2 802.11 ac WiFi + Bluetooth 4.0
Alienware 鍵盤(英語)
滑鼠
Xbox 360 控制器
Office 2013 序號
CyberLink Media Suite
Office 365 - 1 Month 序號
Wave Systems Software
AL Area 51 R2 : 1 Year Premium Support
(Dell Outlet電腦規格和配件都不盡相同,有興趣想買的記得要看仔細)
不過Xbox 360 控制器和Office 2013 序號沒找到,正在詢問客服中。
Area 51-R2的可擴充性較低,不過反正就像我說的,機殼才是主體,I dont care。
原價美金$2,749,70%折扣後$1,924.3,運費與手續費$109,總計$2,033.3。(NTD $66,745)
代寄是使用 spearnet。服務費美金$30,運費$310,俄勒岡州轉運費$71,合計$411。(NTD $13,316)
通關及稅金 NTD $5,405
故所有費用合計是 66,745+13,316+5,405 = NTD $85,466
相關購買時間歷程如下:
Alienware Area 51-R2 i7-5820K、980 SLI、16GB、128GB SSD、2TB HD(原價美金 $2,749,70%折扣後$1,924.3,運費與手續費$109,總計$2,033.3)
高度:569.25 公釐 (22.411 吋)、深度:638.96 公釐 (25.156 吋)、寬度:272.71 公釐 (10.736 吋),長寬高合計148cm
Dell表示起始重量:28 kg(61.73 磅)
但spearnet秤重:31.8 kg(70.6 磅)(oversize 195cm, overweight)
4/2 購買,扣款失敗
4/4 扣款成功,NT $65,759,國外交易服務費NT $ 986
4/5 發貨(fedex)(應該是美東時間)
4/6 到spearnet俄勒岡州倉庫,spearnet顯示等待轉往加州倉庫(應該是美西時間)
4/8 顯示包裹運回加州倉庫中(應該是美西時間)
4/13 顯示包裹抵達加州倉庫,請求送為台灣
4/14 收到通知付費(服務費+運費+俄勒岡州轉運費)
4/15 通知已寄出( 黑貓宅急便)
4/18 通知到台灣但需要被查關,提供委任書,通關服務費NT $500元
4/19 通知委任書修改,且因為是電腦,且內建wifi或藍芽,故需要補NCC-自用切結書
4/20 通知回報檢驗代辦費NT 1,575元
4/22 通知NCC比對沒通過,去電處理的人員不在
4/25 再次去電處理的人員後,回覆說需要提供網頁檔。提供後代辦人員說他們也是提供這個,但沒過,叫我要請dell提供工作頻率2.4Ghz及輸出功率20.0dBm出示證明
4/26 寄從網路上抓的Intel Dual Band Wireless-AC 7260資料試看看
4/28 代辦跟我說又不能改品項名稱,不然又要付100塊修改費用。我跟他說雖然那台電腦型號是Alienware Area 51-R2,但網卡是Intel Dual Band Wireless-AC 7260,因為他說我講得太複雜了,還要補上一份說明函
4/29 代辦告訴我文件太多了,他自己又傳了一份型錄,但型錄上其實也沒有工作頻率及輸出功率,但結果很神奇的,就過了!稅NT $ 3,130,商檢規費NT $ 200
5/3 到貨
合計花費:
項目 | USD |
NT
|
Alienware Area51 R2
| $2,033 | 65,759 |
國外交易服務費 | 986 | |
服務費、運費、俄勒岡州轉運費合計 | $411 | 13,316 |
通關服務費 | 500 | |
檢驗代辦費 | 1,575 | |
商檢規費 | 200 | |
稅 | 3,130 | |
合計 | 85,466 |
PS:俄勒岡州是免稅區,寄俄勒岡州轉運1磅要美金$1,在俄勒岡州倉庫物品大約會被放1週時間。
如果消費稅算起來比俄勒岡州倉庫轉運費便宜的話,也可以選擇不轉俄勒岡州,這樣還會快一點到。
Alienware windows 改裝 Note:
Alienware windows 改裝 Note:
win7 iso製作為開機隨身碟
sp 廣穎隨身碟無法寫入問題
oem 登入圖
解決以USB安裝Windows 7時出現「找不到任何裝置驅動程式」、「遺失必要的CD/DVD裝置驅動程式」
Windows 7 USB3.0問題
2016年3月1日
Autohotkey:CoordMode,延伸螢幕座標控制
用AU3_spy看Mouse Position的On Screen座標,發現如果座標是在延伸螢幕的座標,例如:
mousemove, -100, -500
游標控制都會失敗,例如滑鼠游標會跑到延伸螢幕的左上角。
但如果是在主要螢幕就不會有這個問題了,PTT問了下,mkz6大大提供了解法。
設置:
CoordMode, Mouse, Screen
CoordMode說明
为多个命令设置坐标模式, 相对于活动窗口还是屏幕.
备注
如果没有使用此命令, 除了另外注明的那些外的所有命令 (例如 WinMove 和 InputBox) 都使用相对于活动窗口的坐标模式.
每个新运行的 线程 (例如 热键, 自定义菜单项 或 定时 子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段 (脚本的顶部) 使用此命令可以改变这个默认设置.
相关
Click, MouseMove, MouseClick, MouseClickDrag, MouseGetPos, PixelGetColor, PixelSearch, ToolTip, Menu
示例
mousemove, -100, -500
游標控制都會失敗,例如滑鼠游標會跑到延伸螢幕的左上角。
但如果是在主要螢幕就不會有這個問題了,PTT問了下,mkz6大大提供了解法。
設置:
CoordMode, Mouse, Screen
CoordMode說明
为多个命令设置坐标模式, 相对于活动窗口还是屏幕.
CoordMode, ToolTip|Pixel|Mouse|Caret|Menu [, Screen|Window|Client]
参数Param1 |
ToolTip: 作用于 ToolTip. Pixel: 作用于 PixelGetColor, PixelSearch 和 ImageSearch. Mouse: 作用于 MouseGetPos, Click 以及 MouseMove/Click/Drag. Caret: 作用于内置变量 A_CaretX 和 A_CaretY. Menu: 作用于为 "Menu Show" 命令指定坐标的时候. |
Param2 |
如果省略 Param2, 则默认为 Screen. Screen: 坐标相对于桌面 (整个屏幕). Relative: 坐标相对于活动窗口. Window [v1.1.05+]: 与 Relative 效果相同, 但由于含义清晰, 因此建议使用. Client [v1.1.05+]: 坐标相对于活动窗口的工作区, 其中不包括标题栏, 菜单栏 (如果它含有标准菜单栏的话) 和边框. Client 坐标模式较少依赖于操作系统版本和主题. |
备注
如果没有使用此命令, 除了另外注明的那些外的所有命令 (例如 WinMove 和 InputBox) 都使用相对于活动窗口的坐标模式.
每个新运行的 线程 (例如 热键, 自定义菜单项 或 定时 子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段 (脚本的顶部) 使用此命令可以改变这个默认设置.
相关
Click, MouseMove, MouseClick, MouseClickDrag, MouseGetPos, PixelGetColor, PixelSearch, ToolTip, Menu
示例
CoordMode, ToolTip, Screen ; 把 ToolTips 放置在相对于屏幕坐标的位置:
CoordMode, ToolTip ; 和上面效果相同, 因为 "screen" 是默认的坐标模式.
標籤:
軟體 | Autohotkey
Desktop GPU Performance Hierarchy Table December 15, 2015
Desktop GPU Performance Hierarchy Table December 15, 2015
最近可能會用到,單純先做個紀錄。
Nvidia GeForce | AMD Radeon | Intel |
GTX Titan Z | R9 295X2 | |
Titan X, 980 Ti | HD 7990, R9 Fury X | |
GTX 980, 690, Titan Black | R9 Fury. Fury Nano | |
GTX 780, 780 Ti, 970, Titan | R9 290, 290X, 390X, 390 | |
GTX 590, 680, 770 | HD 6990, 7970 GHz Ed., R9 280X, 380 | |
GTX 580, GTX 670, GTX 960 | HD 5970, 7870 LE (XT), 7950, 280, 285 | |
GTX 660 Ti, GTX 760 | HD 7870, R9 270, R9 270X, R7 370 | |
GTX 295, 480, 570, 660 | HD 4870 X2, 6970, 7850, R7 265 | |
GTX 470, 560 Ti, 560 Ti 448 Core, 650 Ti Boost, 750 Ti | HD 4850 X2, 5870, 6950, R7 260X | |
GTX 560, 650 Ti, 750 | HD 5850, 6870, 7790 | |
9800 GX2, 285, 460 256-bit, 465 | HD 6850, 7770, R7 260, R7 360 | Integrated: Iris Pro Graphics 6200 |
GTX 260, 275, 280, 460 192-bit, 460 SE, 550 Ti, 560 SE, GT 650, GT 740 GDDR5 | HD 4870, 5770, 4890, 5830, 6770, 6790, 7750 (GDDR5), R7 250 (GDDR5), R7 250E | |
8800 Ultra, 9800 GTX, 9800 GTX+, GTS 250, GTS 450 | HD 3870 X2, 4850, 5750, 6750, 7750 (DDR3), R7 250 (DDR3) | Integrated: HD Graphics 530 |
8800 GTX, 8800 GTS 512 MB, GT 545 (GDDR5), GT 730 64-bit GDDR5 | HD 4770 | |
8800 GT 512 MB, 9800 GT, GT 545 (DDR3), GT 640 (DDR3), GT 740 DDR3 | HD 4830, HD 5670, HD 6670 (GDDR5), HD 7730 (GDDR5) | |
8800 GTS 640 MB, 9600 GT, GT 240 (GDDR5) | HD 2900 XT, HD 3870, HD 5570 (GDDR5), HD 6570 (GDDR5) | |
8800 GS, 9600 GSO, GT 240 (DDR3) | HD 3850 512 MB, HD 4670, HD 5570 (DDR3), HD 6570 (DDR3), HD 6670 (DDR3), HD 7730 (DDR3), R7 240 | |
8800 GT 256 MB, 8800 GTS 320 MB, GT 440 GDDR5, GT 630 GDDR5, GT 730 128-bit GDDR5 | HD 2900 Pro, HD 3850 256 MB, 5550 (GDDR5) | |
7950 GX2, GT 440 DDR3, GT 630 DDR3, GT 730 128-bit DDR3 | X1950 XTX, HD 4650 (DDR3), 5550 (DDR3) | |
Integrated: HD 7660D | ||
7800 GTX 512, 7900 GTO, 7900 GTX, GT 430, GT 530 | X1900 XT, X1950 XT, X1900 XTX | |
7800 GTX, 7900 GT, 7950 G, GT 220 (DDR3) | X1800 XT, X1900 AIW, X1900 GT, X1950 Pro, HD 2900 GT, HD 5550 (DDR2) | |
Integrated: HD 7560D | ||
7800 GT, 7900 GS, 8600 GTS, 9500 GT (GDDR3), GT 220 (DDR2) | X1800 XL, X1950 GT, HD 4650 (DDR2), HD 6450, R5 230 | |
Integrated: HD 6620G, 6550D, 7540D | ||
6800 Ultra, 7600 GT, 7800 GS, 8600 GS, 8600 GT (GDDR3), 9500 GT (DDR2) | X800 XT (& PE), X850 XT (& PE), X1650 XT, X1800 GTO, HD 2600 XT, HD 3650 (DDR3), HD 3670 | Integrated:Intel HD Graphics4000 |
Integrated: 6520G, 6530D, 7480D | ||
6800 GT, 6800 GS (PCIe), 8600 GT (DDR2), GT 520 | X800 XL, X800 GTO2/GTO16, HD 2600 Pro, HD 3650 (DDR2), | |
Integrated: 6410D, 6480G | ||
6800 GS (AGP) | X800 GTO 256 MB, X800 Pro, X850 Pro, X1650 GT | |
Integrated: 6370D, 6380G | ||
6800, 7300 GT GDDR3, 7600 GS, 8600M GS | X800, X800 GTO 128 MB, X1600 XT, X1650 Pro | |
6600 GT, 6800LE, 6800 XT, 7300 GT (DDR2), 8500 GT, 9400 GT | 9800 XT, X700 Pro, X800 GT, X800 SE, X1300 XT, X1600 Pro, HD 2400 XT, HD 4350, HD 4550, HD 5450 | Integrated: Intel HD Graphics 3000 |
Integrated: HD 6310, HD 6320 | ||
FX 5900, FX 5900 Ultra, FX 5950 Ultra, 6600 (128-bit) | 9700, 9700 Pro, 9800, 9800 Pro, X700, X1300 Pro, X1550, HD 2400 Pro | |
Integrated: 9300, 9400 | Integrated: HD 3200, HD 3300, HD 4200, HD 4250, HD 4290, HD 6250, HD 6290 | |
FX 5800 Ultra, FX 5900 XT | 9500 Pro, 9600 XT, 9800 Pro (128-bit), X600 XT, X1050 (128-bit) | Integrated: Intel HD Graphics 2000 |
4 Ti 4600, 4 Ti 4800, FX 5700 Ultra, 6200, 8300, 8400 G, G 210, G 310 | 9600 Pro, 9800 LE, X600 Pro, HD 2300 | Integrated: Intel HD Graphics |
Integrated: Xpress 1250 | ||
4 Ti4200, 4 Ti4400, 4 Ti4800 SE, FX 5600 Ultra, FX 5700, 6600 (64-bit), 7300 GS, 8400M GS, 9300M G, 9300M GS | 9500, 9550, 9600, X300, X1050 (64-bit) | Integrated: Intel HD Graphics |
3 Ti500, FX 5200 Ultra, FX 5600, FX 5700 LE, 6200 TC, 6600 LE, 7200 GS, 7300 LE | 8500, 9100, 9000 PRO, 9600 LE, X300 SE, X1150 | Integrated: GMA X4500 |
Integrated: 8200, 8300 | ||
3, 3 Ti200, FX 5200 (128-bit), FX 5500 | 9000, 9200, 9250 | |
FX 5200 (64 bit) | 9200 SE | Integrated: GMA X3000, X3100, X3500 |
Integrated: 6100, 6150, 7025, 7050 | Integrated: Xpress 200M, Xpress 1000, Xpress 1150 | |
2 GTS, 4 MX 440, 2 Ultra, 2 Ti, 2 Ti 200 | 7500 | Integrated: GMA 3000, 3100 |
256, 2 MX 200, 4 MX 420, 2 MX 400 | SDR, LE, DDR, 7000, 7200 | Integrated: GMA 500, 900, 950 |
Nvidia TNT | Rage 128 | Discrete: Intel 740 |
來源:Tom's Hardware
2016年2月28日
Autohotkey:大量BT種子批量下載並改檔名腳本
這個腳本主要是為了用來解決我常有大量種子下載需求。
因為在下載種子的時候,通常我就會把我想要存成的檔名或資料夾名稱直接改為種子名稱。但是當有幾十個種子要下載的時候,我必須重複這樣的動作:
另外一個比較麻煩的是第6點,這裡需注意到SetTitleMatchMode的值,因為需要用到包和或用更多條件精準判斷視窗名稱的技巧。另一個是Gosub所在位置,因為很假掰的用了else,結果一開始一直不知道為什麼「Gosub, avmove」沒有辦法被啟用,結果是因為放的位置錯了。(我原本放到avcopy最後的return之前)
所以前前後後可能研究了好幾個小時吧,現在只剩不知道怎麼寫如何選擇想要保留的檔案。(如果大概知道怎麼做得大大也可以分享一下大概可以怎麼做)
但目前的做法已經解決大部分問題,還是蠻有成就感的,來分享一下作法,大家以後如果碰到類似問題可參考。
因為在下載種子的時候,通常我就會把我想要存成的檔名或資料夾名稱直接改為種子名稱。但是當有幾十個種子要下載的時候,我必須重複這樣的動作:
- 按F2。
- Ctrl+C複製種子檔名。
- Enter開啟種子。
- 檢視這是單一檔案或是一個資料夾。如果是資料夾的話直接貼上名稱,但如果是單一檔案就只貼上名稱到副檔名前,所以如果是手動的話這時候會比較麻煩。因為只有單一檔案這樣的種子它的路徑可能會是「C:\Download\XXXX123.avi」,就算你的設定是隱藏副檔名,你直接貼上,它下載下來的檔案會變成沒有副檔名「XXXX123」這樣的檔案。
- 選擇想要保留的檔案(因為有時候種子裡會有很多垃圾檔)按Enter。
- 回到放種子的資料夾選下一個檔案,繼續上述動作。
另外一個比較麻煩的是第6點,這裡需注意到SetTitleMatchMode的值,因為需要用到包和或用更多條件精準判斷視窗名稱的技巧。另一個是Gosub所在位置,因為很假掰的用了else,結果一開始一直不知道為什麼「Gosub, avmove」沒有辦法被啟用,結果是因為放的位置錯了。(我原本放到avcopy最後的return之前)
所以前前後後可能研究了好幾個小時吧,現在只剩不知道怎麼寫如何選擇想要保留的檔案。(如果大概知道怎麼做得大大也可以分享一下大概可以怎麼做)
但目前的做法已經解決大部分問題,還是蠻有成就感的,來分享一下作法,大家以後如果碰到類似問題可參考。
F8:: ;種子自動貼檔名:啟動 Gosub, avcopy return avcopy: ;種子自動貼檔名(查字串中是否有副檔名判斷為單獨檔案或是資料夾) Send, {F2} ;編輯檔名 sleep, 500 Send, ^{C} ;複製檔名 filename = %clipboard% Send, {Enter}{Enter} ;開啟種子 sleep, 888 Send, ^{A} ;全選路徑 sleep, 300 Send, ^{C} ;複製路徑 sleep, 300 if clipboard contains .wmv,.mp4,.avi,.mkv,.rmvb,.rm ;如果完整路徑中包含所列副檔名,則判定為只有單一檔案 { StringGetPos, pos, clipboard, ., R ;從最右邊開始搜尋點的位置 StringLen, length, clipboard ;計算字串長度 npos := length-pos ;長度減掉位置 StringRight, fileextension, clipboard, npos ; 把clipboard中名稱去掉檔名丟到變數fileextension clipboard = %filename%%fileextension% ;把檔名加上副檔名後丟到剪貼簿 sleep, 300 Send, ^{V} ;貼上種子檔名&副檔名內容 Gosub, avmove return } else { clipboard = %filename% sleep, 300 Send, ^{V} ;貼上種子名稱 Gosub, avmove return } Gosub, avmove return avmove: ;種子自動化:確認並移動到下一個種子 SetTitleMatchMode, 2 ;SetTitleMatchMode包含模式 WinWait, 增加新的Torrent ahk_class #32770 sleep, 100 WinWaitClose, 增加新的Torrent ahk_class #32770 sleep, 100 SetTitleMatchMode, 3 ;SetTitleMatchMode準確匹配模式 WinWait, Torrent ahk_class CabinetWClass, IfWinNotActive, Torrent ahk_class CabinetWClass, , WinActivate, Torrent ahk_class CabinetWClass, WinWaitActive, Torrent ahk_class CabinetWClass, Sleep, 100 Send, {Down} Gosub, avcopy return
標籤:
軟體 | Autohotkey
2016年2月17日
Excel:用yahoo api抓股價Excel巨集
之前有用PTT板上大大寫的excel巨集,不過他用的方式是去抓網頁。
缺點是網頁有修改的話版位就走樣。而且如果要讀取的股票數量多的話,速度會很慢。
(那個巨集板上大大也沒有要繼續維護了...可惜)
昨天研究了一下,最後找到了api的這個巨集方法。參考了:
http://kuanming-style.blogspot.tw/2013/02/excelvbayahoo-finance-apis.html
和巨集作者M.Kishinevsky and M. Higgs的檔案:
http://www.pythonclub.org/project/yahoo-data-api
yahoo提供的api應該比較不會有甚麼異動才是,而且抓資料速度快超多。
我改了一個平常在用的Excel範本,提供各位參考:
https://sites.google.com/site/kslman/file/Stock%2Byahoo_sample.xlsm?attredirects=0&d=1
md5:8d17c8b6af281aa7bea464c39ef5acc0
使用說明:
1.打開後記得啟用巨集
2.「即時」分頁中的按鈕「Download Data」點下去,就會把A欄有Symbols的股票更新。
3.「即時」分頁中的「C2」裡的值「l1c1vhgd1rm4n」可以自定義。右邊Yahoo Tag那張圖裡面有說明填入甚麼樣的代碼會回饋甚麼值。不過表頭不會跟著更新,如果有興趣DIY修改的,自己要搞清楚是動到哪一欄。
4.如果要新增要查詢的股票,在「參照」分頁中自行在A、B、C增加編號、名稱和類別,D和E是公式,只要往下拉就可以。然後把得到的Yahoo Symbols貼到「即時」分頁A欄。
5.分頁「關注」和「對帳單sample」就只是兩個範本而已。提供參考如果抓api資訊後,Excel後續可以幫助你做甚麼事情的範本。
如果對巨集有甚麼疑問的話,可以自己打開來看。
內容跟原作者M.Kishinevsky and M. Higgs的內容是一樣的,我只是加上中文註解。
巨集如下。
Sub GetData() '宣告變數 Dim QuerySheet As Worksheet Dim DataSheet As Worksheet Dim qurl As String Dim i As Integer '告訴Excel不要每更新一格就重新計算 Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual '將現在的工作表設為資料表 Set DataSheet = ActiveSheet '從第七列開始,只要第一欄(A欄)內容不是空的,就把代碼加到Yahoo Finance API的 網址中 Range("C7").CurrentRegion.ClearContents i = 7 qurl = "http://download.finance.yahoo.com/d/quotes.csv?s=" + Cells(i, 1) i = i + 1 While Cells(i, 1) <> "" qurl = qurl + "+" + Cells(i, 1) i = i + 1 Wend qurl = qurl + "&f=" + Range("C2") '將網址放到C1的欄位中 Range("c1") = qurl '抓取資料 QueryQuote: With ActiveSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("C7")) .BackgroundQuery = True .TablesOnlyFromHTML = False .Refresh BackgroundQuery:=False .SaveData = True End With '將CSV的格式塞到Excel的表格當中 Range("C7").CurrentRegion.TextToColumns Destination:=Range("C7"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, other:=False '讓Excel重新活回來,讓資料能夠顯示 'turn calculation back on Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True ' Range("C7:H2000").Select ' Selection.Sort Key1:=Range("C8"), Order1:=xlAscending, Header:=xlGuess, _ ' OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Columns("C:C").ColumnWidth = 12 Columns("J:J").ColumnWidth = 25.43 Range("h2").Select End Sub
PS:
原作者網誌中也有附上完整的api代碼說明
http://www.pythonclub.org/project/yahoo-data-api
不過有些代碼就算抓出來,並對照它的英文敘述我也還是看不懂是甚麼。
如知道代碼意思且有興趣幫忙解釋的大大,可在下面推文,我有空會持續完善這張表。
目前我已知代碼解釋如下。
d1 Last Trade Date 最後交易日期
l1 Last Trade (Price Only) 成交價
c1 Change 漲跌(值)
c Change & Percent Change 漲跌值與百分比
v Volume 成交量(這裡顯示股數非張數)
h Day's High 當天最高價
g Day's Low 當天最低價
r P/E Ratio 本益比
n Name 股票英文名稱
--
上文同步有貼在 PTT Stock 板。
其他參考資訊:
http://lovecoding.logdown.com/posts/257928-use-yahoo-api-to-obtain-historical-stock-price-data
標籤:
軟體 | Excel
2016年1月25日
Excel:開啟Excel自動開啟額外視窗
Windows 7下的方法
1、打開REGEDIT
2、在HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open目錄下,只保留以下內容:
[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open]
@=”打開舊檔(&O)”
[HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command]
@=”C:\Program Files\Microsoft Office\Office11\EXCEL.EXE” /e
預設值變更為:
"C:\Program Files (x86)\Microsoft Office\OFFICE11\EXCEL.EXE" /e "%1"
3、刪除ddeexec這個目錄和command下的那個command的鍵值。
其中Excel.Sheet.8為xls檔、Excel.Sheet.12為xlsx檔。
而路徑中:
Office11表示是Office2003
Office12表示是Office2007
Office14表示是Office2010
不過我看到的鍵值是:
"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /dde
如果是改為:
"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /dde "%1"
也可以正常執行,參數應該是都吃的。
參考資料:
http://blog.xuite.net/lidj37/twblog/179517401-%E9%96%8B%E5%95%9F%E5%A4%9A%E5%80%8B%E7%8D%A8%E7%AB%8BExcel++xp%2Fwin7
http://blog.darkthread.net/post-2013-07-15-open-excel-side-by-side.aspx
標籤:
軟體 | Excel
訂閱:
文章 (Atom)