Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default RunAutoMacros does not work correctly from vbscript!

Hi

I create an Excel workbook through vbscript:
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = TRUE
set objWkB = objXL.WorkBooks.add( "book.xlt" )

After creating I pass the parameters into the first
worksheet:
Set colArgs = WScript.Arguments
For i = 0 to colArgs.Count - 1
objXL.Cells(i + 1, 1).Value = "Parameter(" & i & ")"
objXL.Cells(i + 1, 2).Value = colArgs(i)
Next

After this I try to run "Open" macro by command:
objXL.WorkBooks.Item(1).RunAutoMacros(1)

Problem is that the autoOpen subroutine is called right
after workbook.add command when there are no parameters
on the worksheet.
When .RunAutoMacros command is executed the control never
passes to autoOpen subroutine!

I have Win XP with latest updates and Office 2000 with
SP3.

Does anyone have a solution to this.

Juha
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default RunAutoMacros does not work correctly from vbscript!


Try it without the Items-keyword, like this:

Dim objXL
Dim objWkB

Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = TRUE
Set objWkB = objXL.WorkBooks.Add("book.xlt")

Set colArgs = WScript.Arguments
For i = 0 to colArgs.Count - 1
objXL.Cells(i + 1, 1).Value = "Parameter(" & i & ")"
objXL.Cells(i + 1, 2).Value = colArgs(i)
Next

objXL.WorkBooks(1).RunAutoMacros(1)



Hans


"Juha Vehvilainen" schreef in bericht
...
Hi

I create an Excel workbook through vbscript:
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = TRUE
set objWkB = objXL.WorkBooks.add( "book.xlt" )

After creating I pass the parameters into the first
worksheet:
Set colArgs = WScript.Arguments
For i = 0 to colArgs.Count - 1
objXL.Cells(i + 1, 1).Value = "Parameter(" & i & ")"
objXL.Cells(i + 1, 2).Value = colArgs(i)
Next

After this I try to run "Open" macro by command:
objXL.WorkBooks.Item(1).RunAutoMacros(1)

Problem is that the autoOpen subroutine is called right
after workbook.add command when there are no parameters
on the worksheet.
When .RunAutoMacros command is executed the control never
passes to autoOpen subroutine!

I have Win XP with latest updates and Office 2000 with
SP3.

Does anyone have a solution to this.

Juha



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,824
Default RunAutoMacros does not work correctly from vbscript!

I created a .vbs with your code (very slightly modified):

Dim objXL
Dim objWkB
Dim i

Set objXL = wscript.CreateObject("Excel.Application")
objXL.Visible = True
Set objWkB = objXL.WorkBooks.Add("c:\my documents\excel\book1.xlt")

'After creating I pass the parameters into the first worksheet:
Set colArgs = WScript.Arguments
For i = 0 To colArgs.Count - 1
objXL.Cells(i + 1, 1).Value = "Parameter(" & i & ")"
objXL.Cells(i + 1, 2).Value = colArgs(i)
Next

'After this I try to run "Open" macro by command:
objXL.WorkBooks.Item(1).RunAutoMacros 1


An in my book1.xlt file, I had this in my Auto_open() code (in a general
module):

Option Explicit
Sub auto_Open()
MsgBox Worksheets(1).Range("a1").Value
End Sub

And I could see A1 and A2 both change when I ran the .vbs via
windows start button|run.

C:\WINDOWS\Desktop\aaa.vbs "xyz"

and it always showed "Parameter(0)"

So I'm gonna guess that it's not your .vbs file that's screwing things up. I'm
gonna guess that the code that's running that causing the problem is not
Auto_Open, it's workbook_open.

When you open a workbook, Auto_open only runs if you run it.

But workbook_open fires UNLESS you tell it not to.

So you could try moving all the open stuff to auto_open (and not change your VBS
file). Or you could tell your VBS file not to run workbook_open.

objxl.enableevents = false
Set objWkB = objXL.WorkBooks.Add("c:\my documents\excel\book1.xlt")
objxl.enableevents = true

Would stop it.

I put this in my workbook_open (under ThisWorkbook):

Option Explicit
Private Sub Workbook_Open()
MsgBox "wo " & Worksheets(1).Range("a1").Value
End Sub

and this to call it in the .vbs:
objxl.run objwkb.name & "!" & "thisworkbook.workbook_open"

And it worked!

======
But I really think I'd try to put the code in the excel template under
Auto_open. It just seems easier to me.



Juha Vehvilainen wrote:

Hi

I create an Excel workbook through vbscript:
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = TRUE
set objWkB = objXL.WorkBooks.add( "book.xlt" )

After creating I pass the parameters into the first
worksheet:
Set colArgs = WScript.Arguments
For i = 0 to colArgs.Count - 1
objXL.Cells(i + 1, 1).Value = "Parameter(" & i & ")"
objXL.Cells(i + 1, 2).Value = colArgs(i)
Next

After this I try to run "Open" macro by command:
objXL.WorkBooks.Item(1).RunAutoMacros(1)

Problem is that the autoOpen subroutine is called right
after workbook.add command when there are no parameters
on the worksheet.
When .RunAutoMacros command is executed the control never
passes to autoOpen subroutine!

I have Win XP with latest updates and Office 2000 with
SP3.

Does anyone have a solution to this.

Juha


--

Dave Peterson

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
countif on cells with formula's won't work correctly JusMe Excel Worksheet Functions 21 August 16th 08 08:20 AM
SMALL function seems not to work correctly hdf Excel Worksheet Functions 13 February 16th 08 02:38 PM
Sorting numbers doesn't work correctly GrammyEmmy New Users to Excel 8 June 25th 06 11:45 PM
How do I get Auto-Fit to work correctly? Mickey Dunne Excel Worksheet Functions 0 May 11th 06 01:47 AM
custom filter does not work correctly RJ Excel Discussion (Misc queries) 1 September 9th 05 07:34 PM


All times are GMT +1. The time now is 11:05 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"