Tag: autohotkey

用于MS Excel的AutoHotkey脚本来读取特定单元格中的值

我需要自动AHK脚本来查找和匹配单元格中的关键字,然后从单元格的右边获取值,并将其与另一个单元格相加。 例如,单元格A3和A9包含文本“现金”,每个(B3和B9)右侧的一个单元格包含值200和300 。 如何自动求和到C5?

AutoHotKey写入现有的Excel文件,并删除保存提示

不,我试图让我的testing代码填写我的网站刮到一个Excel文件的信息。 但是,我似乎得到了一些非法字符错误的一些数据。 而当我试图只是添加一些随机数据保存到Excel文件,它给了我一个提示,要求我保存它。 删除或过滤这些非法字符的最佳方法是什么? 如果我必须使用StrReplace,那很好,但我想知道如果这是最好的方法。 以及如何将variables传入Excel文件,即使没有错误我似乎有一个问题传递%variables%进入单元格是否有另一种方法呢? 这是下面的代码: CloseExcel(){ oExcel := ComObjCreate("Excel.Application") oExcel.DisplayAlerts := False ; This removes the prompt FilePath := "C:\Users\GGVERA\Documents\aviability\test.csv" ; example path this works cWorkbook := ComObjGet(FilePath) ; access Workbook object oWorkbook.Sheets(1).Range("G2").Value := "TestData" cWorkbook.Sheets(1).Range("H2").Value := %Name% ; Name oWorkbook.Save() oWorkbook.Close() }

编辑单元格时如何在Excel中从AHK调用VBAmacros?

我有一个调用Excelmacros的autohotkey脚本。 基本上我有一个通用的快捷方式来添加一个任务到我的自定义GTD应用程序在Excel中 我的AHK代码如下: RunMSExcelMacro(MacroName, args) { ; for AHK_L oExcel := ComObjActive("Excel.Application") ; oExcel.Workbooks("gtd_active.xlsm").Run(MacroName,args) oExcel.Run("'gtd_active.xlsm'!"+MacroName,args) ;oExcel.Run(MacroName,args) } #Space:: InputBox, newTask, Add New Task to GTD, What is the new task?, , 380, 130 if (newtask = "" or ErrorLevel){ ;if blank or "cancel" pressed (ErrorLevel = 1) don't do anything return } else {RunMSExcelMacro("addFromAHK", newTask) […]

AutoHotkey的ComObjActive句柄到特定的工作表

在.ahk脚本中创build当前活动Excel工作表的句柄最简单的方法是: Xl := ComObjActive("Excel.Application") 但是,如果切换到另一个工作簿,这将成为新的“ 当前活动工作表 ”,并且AutoHotkey尝试通过COM在新工作簿中使用工作表和单元格的方法:当然,devise用于处理特定工作表和单元格的脚本不起作用在不同的工作簿上。 你知道如何创buildCOM句柄到特定的工作簿,而不是当前活动表吗? 目标应该是允许用户在工作簿之间循环,而无需Xl对象丢失以前的句柄并转到新的句柄。 例 从头开始打开一个Excel工作簿,并在名为“ Sheet1 ”的工作表的A1单元格中键入1234 ; 然后使用以下内容创build一个新的.ahk脚本: #Persistent Xl := ComObjActive("Excel.Application") SetTimer, xlRead, 5000 Return xlRead: { value := Xl.Sheets("Sheets1").Range("A1").Value MsgBox, %value% } Return 上面的脚本应该每隔5秒在消息框中显示“1234”。 在运行时,打开一个新的工作簿,并在名为“ Sheet1 ”的单元格A1中键入5678 ,并等待5秒钟:根据我的试验,AutoHotkey只需将句柄切换到新的活动工作表并显示一个消息框,其内容是“5678”。 任何方式来保持它链接到第一张? 当然,假设你可以把Excel文件保存到硬盘上,并用COM可以引用的正确名称。

在AutoHotkey Excel中input不匹配

我正在尝试从用户获取input,在Excel列中查找input值,并返回匹配值右侧单元格的值。 这是我想出来的。 只要我用数字replace%index%,就会从Excel文件中返回一个值。 我收到的错误告诉我有一个“types不匹配”,我使用%index% in value := workbook.Sheets("Sheet1").Cells(%index%, 1).Value 任何想法如何解决types不匹配? #a:: workbook := ComObjGet("somepath\tester.xlsx") InputBox, OutputVar, Question 1, What are you looking for? if (OutputVar) MsgBox, Let me do this for you. intent = OutputVar index = 1 value = "" Loop { index := %index% + 1 value := workbook.Sheets("Sheet1").Cells(%index%, 1).Value } Until %intent% […]

ahk热键configuration文件

这是我的工作代码,以防万一这可以帮助别人! #Warn ; Enable warnings to assist with detecting common errors. #SingleInstance FORCE GUI, Add, Radio, vInventoryCompare, Compare Inventories GUI, Add, Radio, vProductionSheet, Production Spreadsheet Stuff GUI, Add, Radio, vInventorySheet, Inventory Sheet Stuff GUI, Add, Radio, vStop, Disable Hotkeys GUI, Add, Button, default xm, Set ; xm puts it at the bottom left corner. GUI, […]

Autohotkey运行Excel VBAmacros,但不会应用更改

我有一个Excel文件,说Plano.xlsx ,我试图按照这里说明的说明使用Autohotkey上运行VBAmacros脚本。 我不希望在这个过程中看到Excel。 VBA代码应该在第一个表单元格C1中input值99。 经过数小时的反复试验,Autohotkey脚本运行平稳无误,即在后台打开一个Excel进程,据说编辑Excel文件,然后退出。 问题是Excel文件根本没有改变。 VBA代码工作正常,如果我手动将其粘贴到Excel中的新VBA模块,而不使用Autohotkey。 这里是代码: #SingleInstance force #Include Acc.ahk VBcode= ( Sub myFunction() Worksheets(1).Select Worksheets(1).Range("C1").Select Selection.Value = 99 End Sub ) Excel_Run("myFunction") Excel_Run(sFunction){ FilePath = C:\Users\KostasK\Desktop\Plano.xlsx oExcel := ComObjCreate("Excel.Application") Excel_ImportCode(VBcode) oWorkbook := oExcel.Workbooks.Open(FilePath) Excel_Get().Run(sFunction) oWorkbook.Save oExcel.Quit } Excel_ImportCode(VBcode){ if fileexist(A_ScriptDir . "\tempvbcode.txt") FileDelete, %A_ScriptDir%\tempvbcode.txt FileAppend, %VBcode%, %A_ScriptDir%\tempvbcode.txt Excel_Get().ActiveWorkbook.VBProject .VBComponents.Import(A_ScriptDir . "\tempvbcode.txt") } […]

应用条件格式化后,Excel 2007拒绝了粗体命令

我有一个与Excel(2007)电子表格交互的AutoHotkey脚本。 它执行以下操作:input条目,在条目中select性地加粗字,移动到第二个单元格并input另一个条目,移到第三个单元格并停止。 这完美的工作,但第二个单元格包含偶尔由第二个条目触发的条件格式。 任何时候格式都被触发,Excel将开始拒绝select性的粗体。 我曾尝试使用长时间睡眠和SetKeyDelay时间无济于事。 当我做慢testing运行,它看起来像大胆的风格正在申请,并保持在Excel退出“编辑模式”后。 由于某种原因,在“发送{右边3}”到“顶部”select“单元格”开始时失败。 我无法用手动input复制错误。 有谁知道发生了什么? 谢谢! :*:007\:: send XXX!{enter}Hooligan!{enter}007 send {F2}+{left 4}^b ; enter Edit Mode and bold end number send {left 1}+{left 8}^b{F2} ; bold name and exit Edit Mode send {right 3} ; go to top 'choice' cell send {enter} ; down to 'option' cell send {enter}{right 11} ; […]

创build数据透视表和图表在用于Autohotkey的Excel COM中

我试图创build一个数据透视表,然后从ahk的透视图embedded到电子邮件。 我是一个小菜鸟,所以请原谅我的代码质量。 我无法让我的数据透视表正确设置,并且无法为我的生活出现一个图表。 我已经提到了我一直在工作的post,以及在这篇文章底部的最终结果。 我的数据是两列,与(可以使它没有)时间的标题,并警告我希望能够创build一个图表,显示数量和警告的types随着时间的推移,从那里得到一个对象的句柄和把它放在一个Outlook电子邮件,甚至只是一个副本粘贴会为我工作。 请告诉如何做到这一点,我想我是如此接近。 编辑我更新了下面的代码,得到它的点(马虎确定)图表创build,我唯一缺less的东西是向数据透视表中的图例字段添加“警告”,并将Axis(目录)从“时间“到”小时“,这将按小时分组,而不是单独的时间戳。 如果我手动这样做,我似乎得到了我想要的结果。 之后,我只想删除图表标题,然后将图表分配给要embedded的对象,或者将其放到剪贴板上。 感谢您的任何帮助。 f1::Reload Pause::Pause f2::ListVars Pause !`:: function() return function() { when:=[] what:=[] Nothing:="Nothing to report, have a wonderful day." TMP:="" RMRKS:="" Date1:="" Date2:="" EMOUT:="" EMIN := Clipboard ; Email text var Loop, Parse, EMIN,`n,`r ; parse email by line { tmp := StrSplit(A_LoopField, ";") ; for […]

公共图书馆数据的时间

我正在努力创造一个更好的方式来查看在我工​​作的公共图书馆举行的项目的历史。 我一直在使用SirsiDynix(我们的图书馆软件),Excel和Autohotkey的内置函数的组合来提取,处理和显示数据。 我目前一直在devise一种方法来查看一个项目的状态随着时间的推移,因为它只是基于最后一个交易显示。 例如,如果我有以下项目: 0000519227318 005.54 WAL 101 EXCEL 2013 TIPS, TRICKS & TIMESAVERS Walkenbach, John, author WE-WH 2013 7 7/13/2013 6/29/2015 35 我可以告诉你,它是在2013年7月13日创build的,最后一次在6/29/2015检出,共被检出7次。 但是我无法告诉你任何关于这些结账的时间长短,或者是什么时候发生的,或者是在这段时间里书本失踪了一年。 借助Autohotkey和SirsiDynix Director的工作站,我可以创build“每日快照”csv文件,以指示项目每天的位置。 但是,我很难弄清楚如何合并这些信息。 本来我打算每天在logging末尾添加一个额外的列,这样在一般项目信息之后,您将有一系列数字列出变化的位置。 我为AHK编写的代码有点慢,而且我仍然在研究如何最好地在Excel中显示它。 但是,我想到可能有一个更好的方法来处理这个可以完全自动化的过程。 所以我问是否有build议要么使用简单的数据库系统,要么改进我现有的方法可以帮助我。 我打算做的查询只是能够主要键入一个项目编号,并有一个图表显示项目的状态,希望随着东西,也可以显示,每当总结帐增加。 我一直在看股票图表作为例子,但许多人似乎想要开放,closures,嗨,低价值他们得到的反应似乎超出了我可能需要的。 相对于总时间在货架上具有最长时间的项目的附加查询将是有用的,尽pipe不是最初需要的。 任何帮助,我可能想要去什么方向,将不胜感激。 我对AutoHotKey和Excel有基本的了解,几年前我简单地使用了MySQL,所以我对数据库的使用有一般的感觉。