+ Reply to Thread
Results 1 to 3 of 3

VBComponents question

  1. #1
    Frederick Chow
    Guest

    VBComponents question

    Hi all,

    I need to programmatically add codes to a sheet module which has been
    renamed previously.

    Let's say such module's internal name is Sheet8, but the sheet has been
    renamed as, say "ABCDE".

    Now I found that I could not properly refers to that sheet's module by
    writing VBProject.VBComponents("ABCDE"), but
    VBProject.VBComponents("Sheet8") will be fine.

    My question is, is it ever possible to refer to that VB Component with
    "ABCDE", and not "Sheet8"? This is necessary because the original sheet name
    ("Sheetx") differs each time when I need to add code to it. Thanks for your
    assistance.

    Frederick Chow
    Hong Kong.



  2. #2
    Tom Ogilvy
    Guest

    RE: VBComponents question

    not directly.

    you can do

    For Each vbc In ThisWorkbook.VBProject.vbcomponents
    If vbc.Type = vbext_ct_Document Then
    If vbc.Name <> "ThisWorkbook" Then
    If vbc.Properties("Name") = "ABCDE" Then
    s = vbc.Properties("_codename").Value
    Set vbc1 = vbc
    Exit For
    End If
    End If
    End If
    Next
    MsgBox s & ", " & vbc.Name
    End Sub

    so vbc1 will be a reference to the component (or you have the name in s or
    you could get it with vbc1.name)

    --
    Regards,
    Tom Ogilvy

    "Frederick Chow" wrote:

    > Hi all,
    >
    > I need to programmatically add codes to a sheet module which has been
    > renamed previously.
    >
    > Let's say such module's internal name is Sheet8, but the sheet has been
    > renamed as, say "ABCDE".
    >
    > Now I found that I could not properly refers to that sheet's module by
    > writing VBProject.VBComponents("ABCDE"), but
    > VBProject.VBComponents("Sheet8") will be fine.
    >
    > My question is, is it ever possible to refer to that VB Component with
    > "ABCDE", and not "Sheet8"? This is necessary because the original sheet name
    > ("Sheetx") differs each time when I need to add code to it. Thanks for your
    > assistance.
    >
    > Frederick Chow
    > Hong Kong.
    >
    >
    >


  3. #3
    Frederick Chow
    Guest

    Thanks a lot (No Content)


    "Tom Ogilvy" <[email protected]> wrote in message
    news:[email protected]...
    > not directly.
    >
    > you can do
    >
    > For Each vbc In ThisWorkbook.VBProject.vbcomponents
    > If vbc.Type = vbext_ct_Document Then
    > If vbc.Name <> "ThisWorkbook" Then
    > If vbc.Properties("Name") = "ABCDE" Then
    > s = vbc.Properties("_codename").Value
    > Set vbc1 = vbc
    > Exit For
    > End If
    > End If
    > End If
    > Next
    > MsgBox s & ", " & vbc.Name
    > End Sub
    >
    > so vbc1 will be a reference to the component (or you have the name in s or
    > you could get it with vbc1.name)
    >
    > --
    > Regards,
    > Tom Ogilvy
    >
    > "Frederick Chow" wrote:
    >
    >> Hi all,
    >>
    >> I need to programmatically add codes to a sheet module which has been
    >> renamed previously.
    >>
    >> Let's say such module's internal name is Sheet8, but the sheet has been
    >> renamed as, say "ABCDE".
    >>
    >> Now I found that I could not properly refers to that sheet's module by
    >> writing VBProject.VBComponents("ABCDE"), but
    >> VBProject.VBComponents("Sheet8") will be fine.
    >>
    >> My question is, is it ever possible to refer to that VB Component with
    >> "ABCDE", and not "Sheet8"? This is necessary because the original sheet
    >> name
    >> ("Sheetx") differs each time when I need to add code to it. Thanks for
    >> your
    >> assistance.
    >>
    >> Frederick Chow
    >> Hong Kong.
    >>
    >>
    >>




+ 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