![]() |
Excel Start-up parms
Does anyone know how to execute Excel and send it a value... then use
the value in a VBA macro in Excel? This would be something like a "run" command with parms. |
Excel Start-up parms
You can't pass custom command line parameters to Excel. The
closest you can come is to create a put the code you want to execute in the Workbook_Open event procedure in the ThisWorkbook code module. This procedure will be executed when the workbook is opened. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "MrT" wrote in message oups.com... Does anyone know how to execute Excel and send it a value... then use the value in a VBA macro in Excel? This would be something like a "run" command with parms. |
Excel Start-up parms
One thing you can do is to open Excel, and then under macro control, have it
open a second workbook, and perform macro commands thereto........ Vaya con Dios, Chuck, CABGx3 "MrT" wrote in message oups.com... Does anyone know how to execute Excel and send it a value... then use the value in a VBA macro in Excel? This would be something like a "run" command with parms. |
Excel Start-up parms
Hi MrT,
You can test, in ThisWorkbook module of your file: Option Explicit Private Declare Function GetCommandLine Lib "kernel32" _ Alias "GetCommandLineA" () As Long Private Declare Function lstrlen Lib "kernel32" Alias _ "lstrlenA" (ByVal lpString As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias _ "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Private Sub Workbook_Open() Dim CmdLine$, CmdArgs$(), i&, ArgNb& CmdLine = GetCommLine If Len(CmdLine) = 0 Then Exit Sub i = InStr(1, CmdLine, ThisWorkbook.FullName, 1) If i Then CmdLine = Mid$(CmdLine, 1, i - 1) Else Exit Sub If Right$(CmdLine, 1) = """" Then i = 2 Else i = 1 CmdLine = Mid$(CmdLine, 1, Len(CmdLine) - i) CmdLine = Mid$(CmdLine, InStr(1, CmdLine, " /e", 1) + 3, Len(CmdLine)) & "/" Do Until Len(CmdLine) < 2 i = InStr(CmdLine, "/") ArgNb = ArgNb + 1 ReDim Preserve CmdArgs(1 To ArgNb) CmdArgs(ArgNb) = Mid$(CmdLine, 1, i - 1) CmdLine = Mid$(CmdLine, i + 1, Len(CmdLine)) Loop For i = 1 To ArgNb CmdLine = CmdLine & "Parameter " & i & ": " & CmdArgs(i) & vbLf Next i MsgBox CmdLine End Sub Private Function GetCommLine() As String Dim Ret&, sLen&, Buffer$ Ret = GetCommandLine sLen = lstrlen(Ret) If sLen Then GetCommLine = Space$(sLen) CopyMemory ByVal GetCommLine, ByVal Ret, sLen End If End Function Examples of use: Execute dialog box: excel /eInfo1/Info2 c:\your file.xls with short cut: "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /eInfo1/Info2 "c:\your file.xls" with batch file: Start "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /eInfo1/Info2 "c:\your file.xls" Regards, MP "MrT" a écrit dans le message de oups.com... Does anyone know how to execute Excel and send it a value... then use the value in a VBA macro in Excel? This would be something like a "run" command with parms. |
All times are GMT +1. The time now is 07:20 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com