作者onlyAPU (Nothing)
看板EzHotKey
標題[AHK-] 讀取excel特定sheet的整行到變數
時間Tue Jul 23 19:23:10 2019
狀況:
因為常常要打估價單,該excel裡面有兩個sheet分別叫[估價單]、[單價]
由於每個客人的需求都有不一樣,常常要複製來複製去
目前作法是:
打開 單價sheet,滑鼠選取,複製,回到 估價單sheet貼上
過程實在有點繁瑣
今天嘗試使用最簡單的ahk寫法
先把 sheet單價需要的欄位複製起來,然後貼上
::c1::
(
品名 尺寸 單價 數量 折數 ....
)
開開心心的把十幾個品項都設定好hotkey...
但是事情沒有憨人想得這麼簡單,因為這樣輸入回去後,公式全部不見了
=====================================================================
上網估狗後,有看到一篇如下
#a::
; Gets a reference to the workbook
; Change the path to the path of your workbook
wbk := ComObjGet("C:\MyFolder\Book1.xlsx")
; Gets the value of cell 1, 1 (also known as cell A1) from Sheet1
A1Val := wbk.Sheets("Sheet1").Cells(1, 1).Value
SendInput, % A1Val
return
他這個方法試用過後是可以的,他讀取後存到一個變數,然後再貼上
但是最大問題是他讀取的只有 單個cell。可是我必須要有多個CELL
例如: 整行,或是A1-O1的值存到變數後再貼上
希望版上有人可以協助,感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.111.72 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1563880992.A.D82.html
1F:推 papple23g: wbk.Sheets("工作表1").Range("A1","C1").Copy07/24 04:18
2F:→ papple23g: Send ^v07/24 04:18
3F:→ papple23g: 更正 C1為O107/24 04:19
4F:→ onlyAPU: 感謝回覆,剛剛測試還是沒有辦法複製整行07/24 11:13
5F:推 ides13: 不考慮直接用VBA嗎?感覺這樣比較快。可以錄製一次,以後07/24 17:22
6F:→ ides13: 直接執行。07/24 17:22
7F:→ onlyAPU: 沒用過vba ,我來查查。謝謝07/25 00:0
***7/25補充
感謝ides13,我用VBA錄製功能已經解決這個問題。後來也有找到
AHK呼叫Excel巨集的命令,分享如下,希望以後對查資料的人有幫助
F1::
oExcel := ComObjActive("Excel.Application")
try oExcel.Run("巨集名稱")
return
如果需要熱字串呼叫巨集的方法如下
::自訂文字::
send,{esc}
sleep,200
oExcel := ComObjActive("Excel.Application")
try oExcel.Run("巨集名稱")
return
※ 編輯: onlyAPU (220.132.111.72 臺灣), 07/25/2019 12:05:52
8F:推 ides13: 點選巨集、再點選「選項」後,可以直接設定快捷鍵。 08/02 17:02