Tag: vbscript

Excel – 检测是否同时按下两个特定的键

我不知道这是否可能。 我正在使用Excel和使用VB脚本。 有没有办法来检测两个键是否在同一时间被按下,他们是哪个? 那么如果是那些被按下的键,我可以使用If / Then语句来执行我需要做的任何过程? 我知道如果我有类似combobox的东西,我可以使用keydownfunction来检测单个按键,但这只会在一个键而不是两个键上工作。 另外,我不使用combobox,文本框或其他任何东西。 我严格使用单元格,所以看起来没有像keydown这样的东西来检测单个按键的按键。 再次,我需要它来检测两个键同时被按下。 我也想以某种方式让它在工作簿级别检测,而不是每个单独的工作表,因为有几个工作表,并希望这些按下键从一个工作表到下一个工作表。 请让我知道这是否可能,但我有一种感觉是不可能的。

修改VBS – Excelmacros循环应用于文件夹中的所有文件

我有一个脚本,将macros应用于多个Excel电子表格。 下面的代码打开特定的文件名并运行脚本。 我很想修改这个在指定文件夹内的所有xls文件上运行。 任何帮助将是伟大的! Dim objExcel, objWorkbook, xlModule, strCode If ReportFileStatus("C:\Billing\Import\IL\3.xls") = "True" Then OpenFile "C:\Billing\Import\IL\3.xls, "" If ReportFileStatus("C:\Billing\Import\IL\3.xls") = "True" Then OpenFile "C:\Billing\Import\IL\3.xls", "" If ReportFileStatus("C:\Billing\Import\IL\3.xls") = "True" Then OpenFile "C:\Billing\Import\IL\3.xls", "" End If On Error Resume Next Set xlModule = Nothing Set objWorkbook = Nothing objExcel.Quit Set objExcel = Nothing On Error GoTo […]

如何使用vbscript和excel工作表将密码设置为Active Directory帐户

我已经创build了一个脚本,将从Excel工作表中导出数据并创build一个AD用户。 如果我在脚本中设置密码,一切正常; 但我不想在脚本中放置密码,我需要它从工作表中拉密码。 每当我尝试引用包含密码的单元格时,我都会收到错误消息:对象不支持此属性或方法:'objUser.SetPassword'正如我所说,我可以将其他所有内容都解决,并创build整个帐户但不能通过设定的密码错误。 35行是错误的地方。 ' Create User Accounts Based on Information in a Spreadsheet Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6 Const ADS_ACEFLAG_OBJECT_TYPE_PRESENT = &H1 Const CHANGE_PASSWORD_GUID = "{ab721a53-1e2f-11d0-9819-00aa0040529b}" Const ADS_RIGHT_DS_CONTROL_ACCESS = &H100 Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Const ADS_PROPERTY_APPEND = 3 Const ADS_PROPERTY_DELETE = 4 Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open _ ("C:\New_users.xlsx") intRow = […]

如何使用VBScript在Excel中激活给定的单元格

我想用VBScript来激活一个给定的单元格(比如A29)。 我试过了: xlsobj.WorkBooks.Open("abcd.xlsx").range("A29").activate 但它没有工作。 我该如何解决?

在Excel中按值自动sorting单元格

我想根据他们在另一列中的值来sorting列中的一组单元格。 KLMN 1 Italy 10000 China 80000 2 Spain 2000 Russia 1000 3 UK 300 India 300 4 France 40 Pakistan 50 我的想法是只根据L1到L4和M1到N4sorting值的范围,即从K1到K4 ,所以如果我现在改变西class牙和/或俄罗斯的价值,我会 KLMN 1 Spain 40000 Russia 100000 2 Italy 10000 China 80000 3 UK 300 India 300 4 France 40 Pakistan 50 此外,列L1:L4和N1:N4取决于其他单元格和公式。 我已经尝试了下面的脚本,它部分工作,但是当L或N的值通过其他单元格修改时,列K和M不会被sorting。 Private Sub Worksheet_Change(ByVal Target As Range) If Not […]

如何循环每一行,如果列是这个值,然后将某些值插入到另一列

最初,excel文件C列上的值完全没有值。 这是我想要做的逻辑,如果在B列上的值为num1,在列C上设置为100,否则如果列在列B上为num2,则在列C上设置200,否则在列C上设置200。只做一行。 这就是为什么我需要一个循环,逐行进行,它将停止,直到到达第11行,这是值的最后一行。 我已经粘贴了我已经尝试使用下面的循环代码,它不起作用。 请帮我纠正我的循环,或者也许我的公式有一些问题,因为我不知道我是否正确地插入公式中的计数器variables不是。 使用我当前的工作代码在C列中生成值的当前输出。 理想的输出,我想实现使用代码。 我目前的代码,生成上面的第一个屏幕截图的C列中的值 Set objShell = CreateObject("Wscript.Shell") Set objExcel = CreateObject("Excel.Application") Set objFSO2 = CreateObject("Scripting.FileSystemObject") Set objWorkbook2 = objExcel.Workbooks.Open("D:\Shared\tempname\test\test2.xlsx") '********** Instantiate the Workbook.Worksheets ********** ' object to open a particular ' Excel Worksheet Set objWorksheet2 = objWorkbook2.Worksheets(c_FirstWksht) Dim cellObj set cellObj = objWorksheet2.cells(3, 3) cellObj.formula = "=IF(B3=""NUM1"",""100"",IF(B3=""NUM2"",""200"",""300""))" Set objWorkbook2 = […]

使用OpenText和SaveAs方法在VBS中打开相对path

好的,所以我有一些代码在一个VBS文件,基本上我想打开一个CSV文件。 执行一些更改(我可以稍后再解决),然后将其保存为xls。 代码运行完全合格的文件path时完美无瑕。 不过,我需要的文件path是相对的。 文件将始终打开并保存到脚本运行的相同path。 我看了GetParentFolderName和GetAbsolutePathName。 然而,我不能如何调用文本中的完全合格的path。 我试过把variables放在文件名不带引号的地方,附加了句点。 任何关于构build函数的例子,然后在下面的代码中调用它将是一个巨大的帮助。 Dim myXL Const xlDelimited = 1 Const xlWorkbookNormal = -4143 Set myXL=CreateObject("Excel.Application") myXL.Visible=False myXL.WorkBooks.OpenText "file.csv", , , xlDelimited, , , , , True myXL.DisplayAlerts=False MORE CODE WILL GO HERE myXL.ActiveWorkbook.SaveAs "new_file.xls", xlWorkbookNormal myXL.DisplayAlerts=True myXL.ActiveWorkbook.Close False myXL.Quit Set myXL = Nothing

Excel和VBscript给我无效的过程调用或参数

我正在写一个VBScript来创build一个日历,在这一行,我得到一个错误,说 With objExcel.Range("A1:U28") '.FormatConditions.Add xlCellValue, xlEqual, "=TODAY()" — CRASH objExcel.Range("A1:U28").FormatConditions.Add xlCellValue,xlEqual,"=Today()" // CRASH .FormatConditions(1).Font.ColorIndex = 2 .FormatConditions(1).Interior.ColorIndex = 1 End With 错误:无效的过程调用或参数

Excel VBScript复制并粘贴单元格值到另一个列表的末尾

我有一个表单元值,并希望将它们复制到另一个工作表上的范围。 下面的脚本适用于复制和粘贴部分,但我希望每次将信息粘贴到列表的末尾,而不是覆盖已经存在的信息。 Set excel = CreateObject("Excel.Application") Set info = excel.Workbooks.Open("C:\Users\jcampos\Google Drive\Standings Excel\Standings.xlsm") info.Worksheets("XML").Range("DATA").Copy info.Worksheets("Gameday Info").Range("A2").PasteSpecial -4163 info.save info.Application.Quit 有没有办法使它附加到列表的底部,而不是覆盖信息? 谢谢

为什么一次运行数百个VBS文件,每次只有大约50个左右的成功

我有大约600个产品的清单,我需要获取库存数据。 我可以从一个内部站点获得这个产品,在那里我复制一个表格,专门显示产品的存储位置(仓库,位置)。 由于VBA webscraping将连续做到这一点,大约需要10〜15分钟才能获得全部600个。 通过VBScript并行处理,我可以缩短这个时间。 我的VBA代码dynamic地创build下面的VBScript,将数据拉回到Excel工作表中。 它可以工作,但是一次只能处理50〜60个产品,不pipe我发布多less个VBScript文件。 其余的失败,不返回输出或不放入表单。 有没有人知道为什么会发生这种情况? 有什么我可以做的调整我的VBScript代码,所以更多将成功? 谢谢你的帮助! VBSCRIPT: Dim oXML, oXL, product, sHTML, tabl, x, y On Error Resume Next Set oXL = GetObject(, "Excel.Application") Set oXML = Wscript.CreateObject("WinHttp.WinHttpRequest.5.1") oXML.Open "GET", "internal-site", False oXML.SetAutoLogonPolicy AutoLogonPolicy_Always oXML.send sHTML = oXML.responseText x = InStr(sHTML, "<table cellpadding=1 border=0 cellspacing=0 align=center>") y = InStr(sHTML, "</table><br>") […]