+ Reply to Thread
Results 1 to 8 of 8

Broken Array?

  1. #1
    Forum Contributor
    Join Date
    09-08-2005
    Location
    UK
    MS-Off Ver
    2010
    Posts
    107

    Broken Array?

    Hi everyone,

    I had a bit of code I was using:

    Please Login or Register  to view this content.
    and it was working fine.

    But then I started altering other parts of the code (8 pages of A4 when printed of) to get rid of a couple of bugs that had, as far as I could see, nothing to do with this bit of code.

    Now, however, the macro just replaces the "1st Network" with the 'strNetwork1' variable in the "Jan" worksheet leaving the others alone

    Does anyone know why this would just break like this?

  2. #2
    Bernie Deitrick
    Guest

    Re: Broken Array?

    Daminc,

    Your code is not broken, but is rather the victim of Excel's Replace method flaws. The replace
    method dialog has an option "Within", which is not addressable through code. So if the user has
    used the replace method and chosen Within to be worksheet rather workbook, your code will not work
    as you expect. The workaround is to loop through the sheets and perform the replace on each sheet.

    HTH,
    Bernie
    MS Excel MVP


    "Daminc" <[email protected]> wrote in message
    news:[email protected]...
    >
    > Hi everyone,
    >
    > I had a bit of code I was using:
    >
    >
    > Code:
    > --------------------
    > Case 1
    > Set wrkbkUrl = Workbooks.Open(Filename:="T:\afolder\3Networks\1 Network.xls")
    > SHEETS(ARRAY(\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\", \"JUL\", \"AUG\", \"SEPT\",
    > \"OCT\", \"NOV\", \"DEC\", \"TEMPANALYSIS\", \"YEARLY SUMMARY\")).SELECT
    > Cells.Replace What:="1st Network", Replacement:=strNetwork1, LookAt:=xlPart,
    > SearchOrder:=xlByColumns, MatchCase:=False
    >
    > Sheets("Jan").Select
    > Range("C3").Select
    > --------------------
    >
    >
    > and it was working fine.
    >
    > But then I started altering other parts of the code (8 pages of A4 when
    > printed of) to get rid of a couple of bugs that had, as far as I could
    > see, nothing to do with this bit of code.
    >
    > Now, however, the macro just replaces the "1st Network" with the
    > 'strNetwork1' variable in the "Jan" worksheet leaving the others alone
    >
    >
    > Does anyone know why this would just break like this?
    >
    >
    > --
    > Daminc
    > ------------------------------------------------------------------------
    > Daminc's Profile: http://www.excelforum.com/member.php...o&userid=27074
    > View this thread: http://www.excelforum.com/showthread...hreadid=510568
    >




  3. #3
    Tom Ogilvy
    Guest

    Re: Broken Array?

    Is there any intervening code between the selection of the sheets and the
    running of the replace command. It sounds like you select sheet Jan so only
    one sheet is selected.

    --
    Regards,
    Tom Ogilvy

    "Daminc" <[email protected]> wrote in
    message news:[email protected]...
    >
    > Hi everyone,
    >
    > I had a bit of code I was using:
    >
    >
    > Code:
    > --------------------
    > Case 1
    > Set wrkbkUrl = Workbooks.Open(Filename:="T:\afolder\3Networks\1

    Network.xls")
    > SHEETS(ARRAY(\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",

    \"JUL\", \"AUG\", \"SEPT\", \"OCT\", \"NOV\", \"DEC\", \"TEMPANALYSIS\",
    \"YEARLY SUMMARY\")).SELECT
    > Cells.Replace What:="1st Network", Replacement:=strNetwork1,

    LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False
    >
    > Sheets("Jan").Select
    > Range("C3").Select
    > --------------------
    >
    >
    > and it was working fine.
    >
    > But then I started altering other parts of the code (8 pages of A4 when
    > printed of) to get rid of a couple of bugs that had, as far as I could
    > see, nothing to do with this bit of code.
    >
    > Now, however, the macro just replaces the "1st Network" with the
    > 'strNetwork1' variable in the "Jan" worksheet leaving the others alone
    >
    >
    > Does anyone know why this would just break like this?
    >
    >
    > --
    > Daminc
    > ------------------------------------------------------------------------
    > Daminc's Profile:

    http://www.excelforum.com/member.php...o&userid=27074
    > View this thread: http://www.excelforum.com/showthread...hreadid=510568
    >




  4. #4
    Forum Contributor
    Join Date
    09-08-2005
    Location
    UK
    MS-Off Ver
    2010
    Posts
    107
    Ref:
    Is there any intervening code between the selection of the sheets and the
    running of the replace command. It sounds like you select sheet Jan so only
    one sheet is selected.
    I don't think so. The code above selects the required workbook and then supposedly selects the required worksheets and then find/replaces where necessary.

    ...your code will not work
    as you expect. The workaround is to loop through the sheets and perform the replace on each sheet.
    I was afraid of that
    It means turning 3 lines of code into 50 odd.
    There are 3 incidences so that's an extra 140 lines of code

    Oh well, what can't be changed must be endured

    Cheers guys.

  5. #5
    Forum Contributor
    Join Date
    09-08-2005
    Location
    UK
    MS-Off Ver
    2010
    Posts
    107
    Please Login or Register  to view this content.
    I've just read something and was wondering if this bit of code would be ok?

  6. #6
    Bernie Deitrick
    Guest

    Re: Broken Array?

    Dim

    This will do just those sheets:

    Dim oWSheet As Worksheet
    For Each oWSheet In Sheets(ARRAY(\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\", \"JUL\",
    \"AUG\", \"SEPT\",
    \"OCT\", \"NOV\", \"DEC\", \"TEMPANALYSIS\", \"YEARLY SUMMARY\"))
    oWSheet.Cells.Replace What:="1st Network", Replacement:=strNetwork1, LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False
    Next oWSheet

    HTH,
    Bernie
    MS Excel MVP


    "Daminc" <[email protected]> wrote in message
    news:[email protected]...
    >
    > Code:
    > --------------------
    > Set wrkbkUrl = Workbooks.Open(Filename:="T:\afolder\3Networks\1 Network.xls")
    >
    > Dim oWSheet As Worksheet
    >
    > For Each oWSheet In Worksheets
    >
    > oWSheets.select
    >
    > Cells.Replace What:="1st Network", Replacement:=strNetwork1, LookAt:=xlPart,
    > SearchOrder:=xlByColumns, MatchCase:=False
    >
    > Sheets("Jan").Select
    > Range("C3").Select
    >
    > Next oWSheet
    > --------------------
    >
    >
    > I've just read something and was wondering if this bit of code would be
    > ok?
    >
    >
    > --
    > Daminc
    > ------------------------------------------------------------------------
    > Daminc's Profile: http://www.excelforum.com/member.php...o&userid=27074
    > View this thread: http://www.excelforum.com/showthread...hreadid=510568
    >




  7. #7
    Forum Contributor
    Join Date
    09-08-2005
    Location
    UK
    MS-Off Ver
    2010
    Posts
    107
    Hi Bernie, what do those backslashes mean/do? I've never seen them used in this way.

  8. #8
    Forum Contributor
    Join Date
    09-08-2005
    Location
    UK
    MS-Off Ver
    2010
    Posts
    107
    I see those backslashes as probably a copy/paste error as this:

    Set wrkbkUrl = Workbooks.Open(Filename:="T:\afolder\3Networks\1 Network.xls")

    For Each oWSheet In Sheets(Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec", "TempAnalysis", "Yearly summary"))
    oWSheet.Cells.Replace What:="1st Network", Replacement:=strNetwork1, LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False
    Next oWSheet

    works great

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1