Tag: vbscript

VBS脚本用于replaceExcel文件中的逗号,然后以CSV格式保存文件

我需要在大量的Excel工作簿中replace逗号,然后将它们保存为CSV,我有下面的代码,但不知道为什么它不工作: csv_format = 6 Set objFSO = CreateObject("Scripting.FileSystemObject") src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0)) dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1)) Dim oExcel Set oExcel = CreateObject("Excel.Application") Dim oBook Set oBook = oExcel.Workbooks.Open(src_file) Dim oBookRange Set oBookRange = oBook.ActiveWorkbook.Sheets(1) oBookRange.Replace What:=",", Replacement:=" ", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ReplaceFormat:=False oBook.SaveAs dest_file, csv_format oBook.Close False oExcel.Quit 这些线路似乎是失败的地方: set oBookRange = oBook.ActiveWorkbook.Sheets(1) oBookRange.Replace What:=",", Replacement:=" […]

如何从VB脚本运行macros时删除Excel单元格

我有一个在Excel中运行VBAmacros的VBS脚本。 当我在Excel文件中手动运行它时,该macros将起作用,但是当从VBS调用它时,在运行查询之前不会删除现有数据。 这是我处理Excel的VBS脚本: Dim xlApp, xlBook Set xlApp = CreateObject("Excel.Application") xlApp.DisplayAlerts = False Set xlBook = xlApp.Workbooks.Open("Y:\Public\Eoin\Complaints Report\Complaints Report.xlsm", False) msgbox("3") xlApp.Run "Complaints_Report.Complaints_Report()" WScript.Sleep 100000 xlbook.Save xlBook.Close False set xlBook = Nothing xlApp.Quit Set xlApp = Nothing 这是我的Excel VBAmacros存储在模块中: Sub Complaints_Report() Sheets("Complaints Report").Activate 'Clear out old detail Range("A2:Z10000").Clear 'Declare variables' Set objMyConn = New ADODB.Connection […]

我试图logging一个macros,它试图从文本文件导入数据并将其粘贴到Excel中的特定单元格

我有近30个.txt文件需要被自动导入到excel的相应单元格中。 所以我想出了通过从数据选项卡导入文本录制macros。 要导入到Excel的数据: Sample.txt : 123-345-678-91-0 但是,如果数据要导入到Excel中: Sample1.txt : 123-345-678-910 345-678-819-000 当Sample.txt返回如上所示的一行输出时,一切正常,但如果返回多个行,如Sample1.txt所示,并且logging一个macros,它将把相应的数据行粘贴到两个连续的行中,而不是一个细胞。 您可以在下面的图片中find有关该问题的信息。 方法尝试: 在从文本导入数据之前尝试按F2 。 尝试从文本导入前双击相应的单元格。 3.在导入之前按住Alt + Enter 。 PFB图像相同。

VBS:在Outlook中设置不在办公室答复与开始date和结束date

我正在通过阅读MS Excel工作表的脚本来自动化Outlook中的OOO。 该脚本从input电子表格中读取开始date和结束date,然后在Outlook中为这些date设置不在办公室的回复。 此脚本获取当前date,如果从电子表格中读取的开始date是明天的date,则会提示用户。 这个想法是提醒用户设置OOO,然后根据用户的确认自动设置。 例如,如果excel表格的开始date和结束date分别21-Oct-2016 24-Oct-2016并且如果此脚本在20-Oct-2016运行,则应该能够设置OOO启动21-Oct-2016年21-Oct-2016年21-Oct-2016 24-Oct-2016自动(无需打开MS Outlook) 到目前为止,我可以阅读电子表格并获取date。 但是,我不能在以后的时间里设定OOO。 以下是正在进行的代码: Sub ReadDataAndSetOOO() Dim objExcel,ObjWorkbook,objsheet intRow = 2 Dim startDateValue, endDateValue Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("C:\input.xlsx") set objsheet = objExcel.ActiveWorkbook.Worksheets(1) DateToday = FormatDateTime(Date, 1) DateTomorrow = formatDate(FormatDateTime(DateAdd("d", 1, DateToday), 1)) Wscript.Echo DateTomorrow Do Until objExcel.Cells(intRow,1).Value = "" startDateValue = formatDate(FormatDateTime(objsheet.Cells(intRow,1).value,1)) endDateValue […]

如何复制粘贴和连接Excel列与VBScript?

我正在玩vbscript,如何让我的生活更轻松。 现在我想运行一个打开excel文件的脚本。 将C列(未知行长度)复制到B列,并将其连接到某些东西。 例: ——————- ||| A | B | C | ——————- |1|ONE | ANY | 11 | |2|TWO | ANY | 42 | |3|FOUR| ANY | 96 | |4|SIX | ANY | 42 | ——————- 为此: ||| A | B | C | ——————- |1|ONE |*11* | 11 | |2|TWO |*42* | 42 […]

当使用vbssearch文件夹时,打开文件,运行macrospersonal.xlsb保持打开状态,所以文件不能移动

我正在使用vbssearch包含“OPS”和“Eve”的文件夹并从Personal.xlsb调用macros,保存为,closures。 脚本运行良好,做我所需要的,但Personal.xlsb保持打开在后台,不会允许我移动/删除/等。 除非我通过任务pipe理器停止进程。 这很麻烦,因为这样做会closures所有其他打开的Excel工作簿。 任何帮助表示赞赏。 一般VBS关于下面的代码的提示也是受欢迎的。 Dim app, fso, file, fName, wb, dir, wb2, shell, searchFileNameOPS, searchFileNameEvents dir = "C:\Users\ntunstall\Desktop\test\" searchFileNameOPS = "OPS" searchFileNameEvents = "Event" Set app = CreateObject("Excel.Application") Set fso = CreateObject("Scripting.FileSystemObject") Set shell = CreateObject("WScript.Shell") Set wb2 = app.Workbooks.Open("C:\Users\ntunstall\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB") For Each file In fso.GetFolder(dir).Files If InStr(file.Name, searchFileNameOPS) = 1 Then fName = […]

将所有的行列值转换为仅列的格式

我有一个Excel表 。 请看“示例校正”表。 我有多个行和列的值。 我需要所有的值仅列格式。 也就是说, 我需要从2465,2503等到331806的所有值在单个新列中 。 (请忽略表格中的“K”后的任何值)。 由于间歇性的空行和中间区域的不需要的文本,我无法应用任何公式或VBA脚本。 参考: https : //www.extendoffice.com/documents/excel/1172-excel-transpose-multiple-columns-into-one-column.html 我尝试了VBA脚本,但只有当所有的行都连续存在时才有效。 这是我的代码: Sub TableToColumn() Dim Rng As Range, LR As Long, i As Long LR = Range("A" & Rows.Count).End(xlUp).Row For i = 1 To LR Set Rng = Range("A" & i, "J" & i) 'Change range to suit needs Range("M" & […]

从一个封闭的工作簿运行macros并保存

我有一个macros,我想在一个特定的日子和时间运行,而不必打开它并运行。 我发现这个链接 ,它说可能通过VBScript Set objExcel = CreateObject("Excel.Application") objExcel.Application.Run "'C:\Users\Ryan\Desktop\Sales.xlsm'!SalesModule.SalesTotal" objExcel.DisplayAlerts = False objExcel.Application.Quit Set objExcel = Nothing 并得到它保存只是添加 objExcel.Application.Save 在申请之前 但我似乎无法得到它的工作,有人可以告诉我什么即时做错了 'Code should be placed in a .vbs file Set objExcel = CreateObject("Excel.Application") objExcel.Application.Run "'C:\Users\user\Desktop\test.xlsm'!Module1.weeklyF" objExcel.DisplayAlerts = False objExcel.Application.Save objExcel.Application.Quit Set objExcel = Nothing

VBAcomboboxoDictionary方法重复值

所以我试图通过名称和date列表循环。 用户在表单中input一个名字,然后当他们点击下拉菜单时,它将填入适用于该名称的date。 我正在尝试使用oDictionary方法来说明重复。 然而,每次我点击下拉菜单时,他们都会加倍重新填充。 所以,如果他们点击下拉菜单,然后再点击它,每个date有两个值。 Private Sub cbCancelApptDate_DropButtonClick() Dim NamePop As String Dim NameRange As Range Dim cell As Range Dim Countcells As Integer NamePop = tbNewApptName.Value 'Search All Appointments If Sheets("All Appointments").Range("C3") = "" Then Set NameRange = Sheets("All Appointments").Range("C2:C2") Else Set NameRange = Sheets("All Appointments").Range("C2", Sheets("All Appointments").Range("C2").End(xlDown)) End If Dim oDictionary As Object […]

VBScript Excel ADO连接:使用SQL查询中的列别名获取值

在下面的代码中,我可以从Excel中使用计数 objTempRecordset.Fields.Item(0).Value 不过,我想在SQL中使用列名别名。 即 sSQL = "Select Count(*) AS RecCount FROM [NELimits$] A WHERE A.Type = 'A' AND A.ID = " &Chr(39) & "R001" & Chr(39) 我想要得到的结果使用: objTempRecordset.Fields.Item("RecCount").Value 我也尝试objTempRecordset.Fields.Item("_Count(*)_").Value但没有运气 有人可以让我知道如何使用列名别名在这种情况下? 注意:Excel有2列ID:例如“R001”,“R002”types的值:types:例如“A”,“B”,“C” 示例代码: sSQL = "Select Count(*) FROM [NELimits$] A WHERE A.Type = 'A' AND A.ID = " &Chr(39) & "R003" & Chr(39) Sqlquery = sSQL […]