[AHK-] 讀取excel特定sheet的整行到變數

看板EzHotKey作者 (Nothing)時間5年前 (2019/07/23 19:23), 5年前編輯推噓3(305)
留言8則, 3人參與, 5年前最新討論串1/1
狀況: 因為常常要打估價單,該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://www.ptt.cc/bbs/EzHotKey/M.1563880992.A.D82.html

07/24 04:18, 5年前 , 1F
wbk.Sheets("工作表1").Range("A1","C1").Copy
07/24 04:18, 1F

07/24 04:18, 5年前 , 2F
Send ^v
07/24 04:18, 2F

07/24 04:19, 5年前 , 3F
更正 C1為O1
07/24 04:19, 3F

07/24 11:13, 5年前 , 4F
感謝回覆,剛剛測試還是沒有辦法複製整行
07/24 11:13, 4F

07/24 17:22, 5年前 , 5F
不考慮直接用VBA嗎?感覺這樣比較快。可以錄製一次,以後
07/24 17:22, 5F

07/24 17:22, 5年前 , 6F
直接執行。
07/24 17:22, 6F

07/25 00:0, , 7F
沒用過vba ,我來查查。謝謝
07/25 00:0, 7F
***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

08/02 17:02, 5年前 , 8F
點選巨集、再點選「選項」後,可以直接設定快捷鍵。
08/02 17:02, 8F
文章代碼(AID): #1TDkuWs2 (EzHotKey)
文章代碼(AID): #1TDkuWs2 (EzHotKey)