Excel: passe o objeto da pasta de trabalho do sub para o formulário do usuário

1
Voto

Quero passar dois objetos (uma pasta de trabalho aberta e outro uma tabela) do subprocedimento para o formulário do usuário. Eu tornei ambos globais antes do sub.

Eu quero passar dois objetos (uma pasta de trabalho aberta e outro uma tabela) do subprocedimento para o formulário do usuário. Eu tornei os dois globais antes do sub.
  1. Quando escrevo apenas as duas declarações públicas antes de Sub (elas são definidas dentro de Sub), funciona bem dentro de Sub, mas quando o formulário do usuário é inicializado, ele lança o erro"Variável de objeto ou com variável de bloco não definida"
  • Quando escrevo apenas as duas declarações públicas antes de Sub (elas são definidas dentro de Sub), funciona bem dentro de Sub, mas quando o formulário do usuário é inicializado, ele lança o erro"Variável de objeto ou com variável de bloco não definida"
  • Quando escrevo apenas as duas declarações públicas antes de Sub (elas são definidas dentro de Sub), funciona bem dentro de Sub, mas quando o formulário do usuário é inicializado, ele lança o erro"Variável de objeto ou com variável de bloco não definida""Variável de objeto ou com variável de bloco não definida"
    Public N As Workbook
    Public E As ListObject
    Sub...
    
    Public N As Workbook Public E As ListObject Sub... Público N como pasta de trabalho Public E As ListObject Sub...
    1. Tentei definir esses dois objetos antes do Sub, o Sub não é executado, gera um erro de compilação,"Procedimento externo inválido"
  • Tentei definir esses dois objetos antes do Sub, o Sub não é executado, gera um erro de compilação,"Procedimento externo inválido"
  • Tentei definir esses dois objetos antes do Sub, o Sub não executa, gera erro de compilação,"Procedimento externo inválido""Procedimento externo inválido"
    Public N As Workbook
    Set N=Workbooks.Open(ThisWorkbook.Sheets("New").Range("A1").Text)
    Public E As ListObject
    Set E=N.Sheets(1).ListObjects(1)
    Sub...
    
    Public N As Workbook Set N=Workbooks.Open(ThisWorkbook.Sheets("New").Range("A1").Text) Public E As ListObject Set E=N.Sheets(1).ListObjects(1) Sub... Public N As Workbook Definir N=Workbooks.Open (ThisWorkbook.Sheets ("New"). Range ("A1"). Text) Public E As ListObject Defina E=N.Sheets (1) .ListObjects (1) Sub...

    Como passar variáveis ​​de objeto de procedimentos Sub para formulários de usuário? Atualmente, a única solução que vejo é definir os objetos no procedimento Sub e no formulário de usuário.

    Como passar variáveis ​​de objeto de procedimentos Sub para formulários de usuário? Atualmente, a única solução que vejo é definir os objetos no procedimento Sub e no formulário de usuário.

    Fonte

    vba excel

    -FaneDuru

    -Repairer

    1 -FaneDuru

    1 -FaneDuru

    -Repairer

    -FaneDuru

    1 Responda
    3
    Votos

    Adicione um Sub ao seu UserForm configurar seu Workbook e ListObject objetos.

    Formulário do usuário:

    Private pWB As Workbook
    Private pLO As ListObject
    
    Public Sub SetObjects(ByVal wb As Workbook, ByVal lo As ListObject)
        Set pWB=wb
        Set pLO=lo
    End Sub
    

    No seu código de chamada:

    Sub CallingCode()
        Dim UF As UserForm1 ' Don't use the global UserForm1 object
        Set UF=New UserForm1
        UF.SetObjects N, E
        UF.Show
    End Sub
    
    Fonte

    Você pode interessar

    © 2021   OlaMundo.Org