Tag: vbscript

我如何将参数从vba传递给vbs(VBScript)?

我有以下的VBA: Sub StartVbs(sVbsPathNmExt) Shell "Explorer.exe """ & sVbsPathNmExt & """", 1 End Sub 和ParamPassTest.vbs中的以下VBScript: MsgBox("Hello x" ) WScript.quit 当我从VBA这样调用它时,它显示一个消息“Hello x”: Sub do_StartVbs() Call StartVbs("Z:\somepath\ParamPassTest.vbs") End Sub 我如何将V中的“x”作为parameter passing给VBS? 我在这里尝试了两种方法,他们要么错误,要么导致我的反病毒closures所有东西: 从vba的parameter passing给vbs 而不是放松我的反病毒规则,我怎样从vba传入参数给vbs?

VBscript用于将.txt中的数据复制并粘贴到.xlsx

希望创build一个脚本,用于将txt文件中的最后8行复制到Excel文件的单元格A,3中。 这到目前为止我已经放在一起,这是行不通的。 基本上从制表符分隔复制到Excel模板文件。 请帮忙,因为我只用VB编写了非常基本的脚本。 这是我正在与迄今为止…. Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile("C:\test.txt", ForReading) for i = Last 8 lines objTextFile.ReadLine Next strLine = objTextFile.ReadLine Wscript.Echo strLine objTextFile.Close Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("C:\NBP ESP-152 REV F TEMPLATE.xlsx") objExcel.Application.Visible = True objExcel.Workbooks.Add = i objExcel.Cells(a, 3).Value = strLine 从Aedvald下面的脚本工作,直到它应该粘贴到工作簿的地步: […]

如何仅在使用vba在特定单元格中按Ctrl + S(保存)后显示消息框

我写了一个代码来显示一个单元格的旧值和新值,然后将消息框显示数据一个接一个地存储到另一个表格中。 Option Explicit Dim OldVals As New Dictionary Private Sub Worksheet_Change(ByVal Target As Range) Dim myCell As Range Dim sMsg As String Dim rg As Range Dim lr As Integer For Each myCell In Target If OldVals.Exists(myCell.Address) Then sMsg = "New value of " & Replace(myCell.Address, "$", "") & " is " & myCell.Value & […]

自动更正白痴的Excel电子表格

我有一个无法正确格式化电子表格的客户。 我已经问了他们十次,要遵循一个明智的指导方针(就像在格式中填写正确的数据表),但是他们缺乏智慧或者专业知识或者两者兼而有之,他们不能/不会这样做。 我为电子表格设置了ODBC连接,并且除了包含产品计数或产品价格的列之外,还会提取数据。 除非我在Excel中手动将每个列的types设置为“Number”,否则在显示结果的ASP页面中,这些值将显示为空值。 是否有可能编写一个将改变数据types的SQL语句? 我不关心它,只要ADODB.Recordset将显示所有列的值,将每列转换为一个string。 码: <% Dim MM_SQLSource MM_SQLSource = "SELECT * FROM [Inventory$]" Set rsGetExcelInfo = Server.CreateObject("ADODB.Recordset") rsGetExcelInfo.ActiveConnection = MM_Excel_Connect rsGetExcelInfo.Source = MM_SQLSource rsGetExcelInfo.CursorType = 0 rsGetExcelInfo.CursorLocation = 2 rsGetExcelInfo.LockType = 1 rsGetExcelInfo.Open() %>

删除包含Excel中列出的数字的行

我有一个Excel表中的数字列表。 也就是说 一列约20行数字。 让我们说它的被调用的列表A,然后我有一些多行多列Excel Sheet2,其中列C可能包含列表A的一些数字。我如何删除Excel表Sheet2中包含列C中的数字

VBScript代码保持Excel文件打开

我有一个VBScript代码来打开一个Excel文件,运行一个macros并closures它。 精细。 现在,我想改变的唯一事情就是打开文件。 如果我删除了两行代码xlApp.activewindow.close和xlApp.Quit,那么工作簿和应用程序仍然是closures的,但它们在后台保持打开状态(Excel进程在任务pipe理器中仍处于活动状态)。 因此,通过再次调用脚本(这正是我想要做的),稍后在同一个文件中重新运行macros是不可能的。 为什么? 这里是代码: Option Explicit On Error Resume Next MyTest Sub MyTest() Dim xlApp Dim xlBook Dim fpath Dim fname ' Excel application running? if not, open Excel On Error Resume Next Set xlApp = GetObject(, "Excel.Application") If xlApp <> "Microsoft Excel" Then Set xlApp = CreateObject("Excel.Application") End If Err.Clear ' […]

将CSV数据加载到工作簿中的特定Excel电子表格中

我遇到了将CSV数据加载到当前活动工作簿的问题,但在单独的工作表中。 现在我正在下载临时数据到这个单独的(隐藏的)工作表中,并将在其他工作表中引用它。 电子表格大约是4MB,并且每天更新。 我怎样才能让VBScript加载这个CSV到一个静态命名的工作表,将被加载之前清除? URLDownloadToFile 0, fileURL, "%tmp%\tmpExchDBData.csv", 0, 0 Dim dbSheet As Worksheet Dim targetSheet As Worksheet Workbooks.Open文件名:=“%tmp%\ tmpExchDBData.csv”,_格式:= 2'使用逗号分隔符Set dbSheet = ActiveSheet 将targetSheet = Workbooks(“Book1”)。表单(3)'设置为任意位置 dbSheet.Move之后:= targetSheet'dbSheet现在在您的工作簿中。 ' 把它藏起来。 设置dbSheet = ActiveSheet dbSheet.Visible = xlSheetHidden

types不匹配,将excel单元格值与数组值进行比较* FIXED *

目前的问题: 目标是将源.csv文件中的数据复制到目标Excel工作表,基于将.csv的每一行中的值与Excel工作表列中的值相匹配,然后根据该值将正确的单元格复制到Excel表格。 我从一个循环中的.csv文件中将数据收集到一个数组中,将数组中的一个值与目标Excel表A列中的值进行比较,如果匹配发生,数组中的所有值都将被复制到Excel表格中的相应行。 当我试图比较Excel工作表的单元格值与数组值时,我现在得到“types不匹配”错误。 这里是代码的相关位: sfile="\\DFSpath\file1.csv" smaster="\\DFSpath\file2.xlsx" set xlapp = createobject("excel.application") set wbtarget = xlapp.workbooks.open(smaster) set tgtworksheet = wbtarget.worksheets("sheet1") set usedRowsXP = tgtworksheet.UsedRange.Rows dim fs,objTextFile set fs=CreateObject("Scripting.FileSystemObject") dim arrStr set objTextFile = fs.OpenTextFile(sfile) Do while NOT objTextFile.AtEndOfStream arrStr = split(objTextFile.ReadLine,",") for each oRow in usedRowsXP Introw = oRow If tgtworksheet.cells(Introw,1).value = arrStr(2) Then tgtworksheet.cells(Introw,4).value = […]

我正在尝试将sheet1范围数据复制到sheet2范围,但没有任何复制

我正在试图将sheet1范围数据复制到sheet2范围,但没有得到复制。 这是我试图实现的完整代码,但被卡在基本的地方。 请帮忙 编辑:我刚刚尝试了macros,同样的事情发生在这个代码。 请参阅快照,您可以在其中看到“快照1”包含源数据,并且也被选中,但未被复制到“快照2”。但是在那里select范围。 Sub copy() Range("A1:J4").Select Selection.copy Sheets("Sheet2").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveWorkbook.Save End Sub 更新 风格1 Option Explicit Dim objSheet1,objSheet2,TotalRows,TotalcolCopy,strPathExcel1 Dim oXls : Set oXls = CreateObject("Excel.Application") Dim aData ': aData = oWb.Worksheets(1).Range("$A2:$C10") Dim dicP : Set dicP = CreateObject("Scripting.Dictionary") strPathExcel1 = "D:\WIPData\AravoMacro\Finalscripts\GE_Wing_To_Wing_Report.xlsx" oXls.Workbooks.open strPathExcel1 Set objSheet1 = oXls.ActiveWorkbook.Worksheets(1) Set objSheet2 = […]

使用VBscript从不同的Excel文件运行VBA脚本

我使用这个代码来search一个文件夹,find所有的excel文件(具有相同的扩展名),从打开的excel文件运行一个VBA脚本,并保存它没有提示。 strPath = "my path" pathName="xlsx" if strPath = "" then Wscript.quit if pathName = "" then Wscript.quit Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.DisplayAlerts = False Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder (strPath) For Each objFile In objFolder.Files If objFso.GetExtensionName (objFile.Path) = "xlsx" Then Set objWorkbook = objExcel.Workbooks.Open(objFile.Path) Set objWorksheet = […]