ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   xl2002 doesn't understand macro written under xl2000 (https://www.excelbanter.com/excel-programming/302252-xl2002-doesnt-understand-macro-written-under-xl2000.html)

sarasta

xl2002 doesn't understand macro written under xl2000
 
I'd appreciate very much if anyone could explain me this mystique :

Under xl2000 I've written such a code :

'------------------------------------------------------------------

Dim file_name as Variant

file_name = array("c:\first.xls","c:\second.xls")

Do Until i N

Workbooks.OpenText Filename:=file_name(i), Origin:= _
xlWindows,... (other parameters)


i = i +1
Loop

'--------------------------------------------------------------------------

So, under xl2000 it works fine, but under xl2002 the open method fail
because of parameter Filename doesn't understand an array element. If
change parameter's Filename value to Filename := "c:\first.xls" i
works fine under xl2002.

Please, if someone knows how to solve this problem, help me. I'
appreciate your help very much

--
Message posted from http://www.ExcelForum.com


Greg Koppel

xl2002 doesn't understand macro written under xl2000
 
What value does i have before the loop?

"sarasta " wrote in message
...
I'd appreciate very much if anyone could explain me this mystique :

Under xl2000 I've written such a code :

'------------------------------------------------------------------

Dim file_name as Variant

file_name = array("c:\first.xls","c:\second.xls")

Do Until i N

Workbooks.OpenText Filename:=file_name(i), Origin:= _
xlWindows,... (other parameters)


i = i +1
Loop


'--------------------------------------------------------------------------

So, under xl2000 it works fine, but under xl2002 the open method fails
because of parameter Filename doesn't understand an array element. If I
change parameter's Filename value to Filename := "c:\first.xls" it
works fine under xl2002.

Please, if someone knows how to solve this problem, help me. I'd
appreciate your help very much.


---
Message posted from http://www.ExcelForum.com/




Dave Peterson[_3_]

xl2002 doesn't understand macro written under xl2000
 
Your code worked ok for me in xl2002. But since I & N weren't declared, it only
opened the first workbook.

And do you really want .opentext with a .xls file? (That, too, didn't bother
xl2002, but it sure looked weird to me.)

"sarasta <" wrote:

I'd appreciate very much if anyone could explain me this mystique :

Under xl2000 I've written such a code :

'------------------------------------------------------------------

Dim file_name as Variant

file_name = array("c:\first.xls","c:\second.xls")

Do Until i N

Workbooks.OpenText Filename:=file_name(i), Origin:= _
xlWindows,... (other parameters)

i = i +1
Loop

'--------------------------------------------------------------------------

So, under xl2000 it works fine, but under xl2002 the open method fails
because of parameter Filename doesn't understand an array element. If I
change parameter's Filename value to Filename := "c:\first.xls" it
works fine under xl2002.

Please, if someone knows how to solve this problem, help me. I'd
appreciate your help very much.

---
Message posted from http://www.ExcelForum.com/


--

Dave Peterson


sarasta[_3_]

xl2002 doesn't understand macro written under xl2000
 
Thanks Dave Peterson, well actually constants i and N are declared
-starts with 1, N = 2. Well, those files I want to open are not exce
files ones, they are comma separated files, could you please try t
open files *.csv . One more question, what Window release do you use
Thanks a lot.

----------

To the 1 replay :
as I understood, you are asking about the values of array ? Anyway, th
initial values are :

i=1
N=2,
file_name(1)="c:\first.xls
file_name(2)="c:\second.xls

Thanks a lot for the help

--
Message posted from http://www.ExcelForum.com


Dave Peterson[_3_]

xl2002 doesn't understand macro written under xl2000
 
First, I wouldn't name a .CSV file .XLS. In fact, if I want to open it via a
macro, I wouldn't name it .CSV either--.TXT seems very appropriate.

And this worked ok for me:

Option Explicit
Option Base 1
Sub testme01()

Dim file_name As Variant
Dim I As Long
Dim N As Long

file_name = Array("c:\my documents\excel\first.xls", _
"c:\my documents\excel\second.xls")

I = 1
N = 2

Do Until I N
Workbooks.OpenText Filename:=file_name(I), Origin:=xlWindows
I = I + 1
Loop

End Sub

Notice that "option Base 1" at the top.

If you don't have that line, this could be your problem.

If you have "option base 0" or no "option base" line there, then this array
(from your original post):

file_name = array("c:\first.xls","c:\second.xls")

is 0 based:
file_name(0) = "c:\first.xls"
file_name(1) = "c:\second.xls"

So when i starts at 1, it never sees the first element of your array.

You could do a similar loop like this:

dim i as long
dim file_name as variant
file_name = array("c:\first.xls","c:\second.xls")

for i = lbound(file_name) to ubound(file_name)
'''your code here
next i

========
I'm using xl2002 and win98--but I don't think that either matter in this
situation.



"sarasta <" wrote:

Thanks Dave Peterson, well actually constants i and N are declared i
-starts with 1, N = 2. Well, those files I want to open are not excel
files ones, they are comma separated files, could you please try to
open files *.csv . One more question, what Window release do you use ?
Thanks a lot.

----------

To the 1 replay :
as I understood, you are asking about the values of array ? Anyway, the
initial values are :

i=1
N=2,
file_name(1)="c:\first.xls
file_name(2)="c:\second.xls

Thanks a lot for the help.

---
Message posted from http://www.ExcelForum.com/


--

Dave Peterson


keepITcool

xl2002 doesn't understand macro written under xl2000
 

this is even simpler:

dim itm as variant
for each itm in array("filename1.txt","filename2.txt")
workbooks.opentext itm
next


keepITcool

< email : keepitcool chello nl (with @ and .)
< homepage: http://members.chello.nl/keepitcool


Dave Peterson wrote:

First, I wouldn't name a .CSV file .XLS. In fact, if I want to open
it via a macro, I wouldn't name it .CSV either--.TXT seems very
appropriate.


Sub testme01()


[don't really like this (using 2 variables where 1 would suffice]
I = 1
N = 2
Do Until I N
Workbooks.OpenText Filename:=file_name(I), Origin:=xlWindows
I = I + 1
Loop


[this is better then previous]

for i = lbound(file_name) to ubound(file_name)
'''your code here
next i


Dave Peterson[_3_]

xl2002 doesn't understand macro written under xl2000
 
I don't see a significant difference between the two loops--the one you
suggested and the one I suggested.

(not comparing the OP's version)

keepITcool wrote:

this is even simpler:

dim itm as variant
for each itm in array("filename1.txt","filename2.txt")
workbooks.opentext itm
next

keepITcool

< email : keepitcool chello nl (with @ and .)
< homepage: http://members.chello.nl/keepitcool

Dave Peterson wrote:

First, I wouldn't name a .CSV file .XLS. In fact, if I want to open
it via a macro, I wouldn't name it .CSV either--.TXT seems very
appropriate.


Sub testme01()


[don't really like this (using 2 variables where 1 would suffice]
I = 1
N = 2
Do Until I N
Workbooks.OpenText Filename:=file_name(I), Origin:=xlWindows
I = I + 1
Loop


[this is better then previous]

for i = lbound(file_name) to ubound(file_name)
'''your code here
next i


--

Dave Peterson


keepITcool

xl2002 doesn't understand macro written under xl2000
 
well...

there isn't a LOT of difference.. i just said 'or even simpler'

since OP had problems with 0based versus 1based arrays,
i just added a simple means of looping an array, for OP to chalk up to his
arsenal :)


for i=lbound(v) to ubound(v)
next

for each itm in v
next


keepITcool

< email : keepitcool chello nl (with @ and .)
< homepage: http://members.chello.nl/keepitcool


Dave Peterson wrote:


I don't see a significant difference between the two loops--the one you
suggested and the one I suggested.

(not comparing the OP's version)



Dave Peterson[_3_]

xl2002 doesn't understand macro written under xl2000
 
I guess I didn't see what was "even simpler"--maybe "equivalent" <bg.

keepITcool wrote:

well...

there isn't a LOT of difference.. i just said 'or even simpler'

since OP had problems with 0based versus 1based arrays,
i just added a simple means of looping an array, for OP to chalk up to his
arsenal :)

for i=lbound(v) to ubound(v)
next

for each itm in v
next

keepITcool

< email : keepitcool chello nl (with @ and .)
< homepage: http://members.chello.nl/keepitcool

Dave Peterson wrote:


I don't see a significant difference between the two loops--the one you
suggested and the one I suggested.

(not comparing the OP's version)


--

Dave Peterson



All times are GMT +1. The time now is 01:21 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com