none
O que significa "ws" no VBA utilizando o Excel? RRS feed

  • Pergunta

  • Bom dia pessoal;

    Estou  começando a estudar VBA e sua utilização no Excel, consegui fazer algumas coisas interessantes, mas uma dúvida me aflinge. 

    No código que estou estudando aparece o seguinte comando: 

    Private Sub SalvaRegistro(ByVal id As Long, ByVal indice As Long)
       With wsCadastroCliente

    Nesse exemplo que estou estudando CadastroCliente é o nome do arquivo e o nome do formulário. 

    Se eu for utilizar por exemplo como nome do arquivo em excel ControlePagamento, e o como nome do formulário CadastroCliente. Qual devo usar depois desse ws?  Por acaso "ws" é o mesmo que Woorksheet?

    terça-feira, 29 de janeiro de 2013 13:43

Respostas

  • wsCadastroCliente é a penas o nome de uma variável que deve representar uma planilha. De boa prática, coloca-se ws antes porque ws significa Worksheet. Você poderia ter uma variável chamada sajklghaes (sem sentido nenhum), mas desde que você atribuísse algum valor a ela.

    Poderia postar o código inteiro?


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta Rafael Meireles sexta-feira, 1 de fevereiro de 2013 11:51
    terça-feira, 29 de janeiro de 2013 20:19
    Moderador

Todas as Respostas

  • wsCadastroCliente é a penas o nome de uma variável que deve representar uma planilha. De boa prática, coloca-se ws antes porque ws significa Worksheet. Você poderia ter uma variável chamada sajklghaes (sem sentido nenhum), mas desde que você atribuísse algum valor a ela.

    Poderia postar o código inteiro?


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta Rafael Meireles sexta-feira, 1 de fevereiro de 2013 11:51
    terça-feira, 29 de janeiro de 2013 20:19
    Moderador
  • Opa, obrigado pela boa vontade.

    Então peguei o código inicialmente nessa página:

    http://www.macoratti.net/10/11/vba_ccli2.htm

    Essa parte em específico é:

    Option Explicit
    'define constantes para controlar as colunas de dados
    Const colCodigo As Integer = 1
    Const colNome As Integer = 2
    Const colEndereco As Integer = 3
    Const colCidade As Integer = 4
    Const colEstado As Integer = 5
    Const colCep As Integer = 6
    Const colTelefone As Integer = 7
    Const colEmail As Integer = 8
    Const indiceMinimo As Byte = 2
    
    'define variavies para controlar a
    Private alterar As Boolean
    Private novo As Boolean
    Private excluir As Boolean
    
    'define as constantes para as cores do textbox
    Const corDesabilitaTextBox As Long = -2147483633
    Const corHabilitaTextBox As Long = -2147483643
    
    'define a planilha usada e o indice do registro
    Private wsCadastroClientes As Worksheet
    Private indiceRegistro As Long

    Na planilha que estou fazendo tem algumas linhas a mais. O nome do meu arquivo é ControlePagamento, o nome da planilha dentro do excel é Clientes. e o nome do formulário que estou usando é CadastrodeClientes. Então estou com dúvida sobre o que devo colocar depois de ws?

    Segue o código da que estou fazendo:

    Option Explicit
    'define constantes para controlar as colunas de dados
    Const colCodigo As Integer = 1
    Const colEmpresa As Integer = 2
    Const colCNPJ As Integer = 3
    Const colNome As Integer = 4
    Const colCPF As Integer = 5
    Const colEndereço As Integer = 6
    Const colBairro As Integer = 7
    Const colCidade As Integer = 8
    Const colUF As Integer = 9
    Const colCEP As Integer = 10
    Const colTelefone As Integer = 11
    Const colComercial As Integer = 12
    Const colCelular As Integer = 13
    Const colEmail As Integer = 14
    Const indiceMinimo As Byte = 2
    
    'define variavies para controlar a
    Private alterar As Boolean
    Private novo As Boolean
    Private excluir As Boolean
    
    'define as constantes para as cores do textbox
    Const corDesabilitaTextBox As Long = -2147483633
    Const corHabilitaTextBox As Long = -2147483643
    
    'define a planilha usada e o indice do registro
    Private wsControlePagamento As Worksheet
    Private indiceRegistro As Long

    Então, devo usar "wsControlePagamento" que se refere ao arquivo. Ou "wsClientes" que se refere a planilha. Ou ainda "wsCadastrodeClientes" que se refere ao formulário? Ou posso usar qualquer uma?

    Comecei a estudar sobre VBA nesse fim de semana, ainda to meio perdido.

    quarta-feira, 30 de janeiro de 2013 00:47
  • Observe bem a linha:

    Set wsCadastroClientes = ThisWorkbook.Worksheets("Clientes")

    wsCadastroClientes é somente o nome de uma variável. Sugiro que você não altere seu nome. Já Clientes, entre aspas, representa o nome da planilha como o Excel mostra, isto é, o nome da aba da planilha. Certifique-se que você possui uma planilha chamada Clientes antes de executar esse código.

    Em qual linha você obtém erro e qual é a descrição do erro?


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 31 de janeiro de 2013 21:33
    Moderador
  • Nessa parte do código não aparece erro, apenas queria entender o que estava escrevendo ao que se refere o bendito ws, e nessa parte não aparece, mas em outras partes sim. Vou postar em outro tópico.

    Obrigado !!!!

    sexta-feira, 1 de fevereiro de 2013 11:51
  • Leia o link http://www.ambienteoffice.com.br/officevba/declaracao_de_variavel/#declaracao_por_sufixos e tire uma ideia por que se usa ws e outros prefixos antes das variáveis.

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 1 de fevereiro de 2013 20:34
    Moderador
  • Fazendo um curso de VBA, encontrei a resposta, isso é uma simples questão de Hierarquia;

    WorkBook = Pasta de Trabalho.

    WorkSheet = Planilha ("Aba" que fica dentro da pasta de trabalho)

    Range = Célula.

    Nome do Arquivo, Cadastro de Clientes, Planilha Dados, e Célula C10

    WorkBook = Cadastro de Clientes,

    WoorkSheet = Dados

    Range = C10

    ws é uma declaração variável de Worksheet

    terça-feira, 23 de julho de 2013 18:31