Ir para o conteúdo principal

Como salvar e usar suas macros VBA em todas as pastas de trabalho no Excel?

Autor: Zhoumandy Última modificação: 2022-07-25

Em alguns casos, pode ser necessário usar uma macro VBA várias vezes no futuro. é possível salve de alguma forma o módulo VBA em qualquer novo documento então estará disponível em todas as pastas de trabalho? A resposta é sim. Neste tutorial, apresentaremos uma maneira fácil de atingir seu objetivo.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 1

Salvar e usar o código VBA em todas as pastas de trabalho


Salvar e usar o código VBA em todas as pastas de trabalho

Por exemplo, você deseja usar o código VBA para converter números em palavras inglesas e salve o módulo VBA em todas as pastas de trabalho caso você queira usar o código VBA no futuro. Por favor, faça o seguinte.

1. aperte o Alt + F11 chaves no Excel, e abre o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Módulo e cole a seguinte macro na janela do módulo.

Código VBA: Converter números em palavras

Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function

3. Clique na Salvar ícone no canto superior esquerdo da faixa de opções ou clique em Ctrl + S para abrir o Salvar como janela.doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 2

4. No Salvar como janela, insira o nome da pasta de trabalho na Nome do arquivo caixa. E selecione o Suplemento do Excel (*.xlam) opção no Salvar como tipo lista suspensa.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 3

5. Em seguida, clique no Salvar botão para salvar a pasta de trabalho com código VBA como um Suplemento do Excel.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 4

6. Voltar para o Excel, feche a pasta de trabalho vazia que foi salva como um suplemento do Excel.

7. Abra uma nova pasta de trabalho com os dados que precisam ser convertidos. Insira a fórmula = NumberstoWords (A2) na célula B2. o # Nome? valor de erro será retornado porque o código VBA ainda não foi aplicado em todas as pastas de trabalho.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 5

8. Vá para a Developer guia, clique em Suplementos do Excel no Adicionar-ins grupo.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 6

9. A Adicionar em caixa de diálogo aparece. Clique no Procurar botão.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 7

10. Escolha o Add-in que você acabou de salvar e clique no botão OK botão.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 8

11. Então o Suplemento Converter Número em Palavras você personalizou é inserido e ativado. Clique no OK para finalizar a configuração.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 9

12. Agora, quando você insere a fórmula = NumberstoWords (A2) na célula B2 e pressione a tecla Entrar key, as palavras em inglês correspondentes serão retornadas. Arraste a alça de preenchimento automático para baixo para obter todos os resultados.
doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 10

Notas:

Se você precisar executar o código manualmente, não há como encontrá-lo nas etapas acima. Por favor, não se preocupe. Há dois caminhos para executar o código.

  1. Você pode adicionar código ao Barra de ferramentas rápida e execute o código cada vez que o botão de código for clicado na barra de ferramentas.
    doc salvar-usar-vba-macros-em-todas-as-pastas de trabalho 11
  2. Você também pode pressionar diretamente Alt + F11 para abrir a caixa de operação do código, encontre o código e pressione F5 para correr.

Outras operações (artigos)

Um código VBA para listar todos os suplementos no Excel
No Excel, você pode adicionar ou inserir alguns suplementos para lidar melhor com os dados. Como sabemos, podemos ir para a janela Opções para ver todos os suplementos, mas existe alguma maneira de listar todos os suplementos em uma planilha? Agora, neste tutorial, ele fornece um código VBA para listar todos os suplementos no Excel.

Como executar a macro VBA ao abrir ou fechar a pasta de trabalho?
Neste artigo, mostrarei como executar o código VBA ao abrir ou fechar a pasta de trabalho todas as vezes.

Como proteger / bloquear o código VBA no Excel?
Assim como você pode usar senha para proteger pastas de trabalho e planilhas, também pode definir uma senha para proteger as macros no Excel.

Como usar o atraso de tempo depois de executar uma macro VBA no Excel?
Em alguns casos, pode ser necessário fazer um atraso de temporizador para acionar uma macro VBA no Excel. Por exemplo, ao clicar para executar uma macro especificada, ela terá efeito após 10 segundos. Este artigo mostrará um método para alcançá-lo.

 


  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas e manutenção de dados; Dividir o conteúdo das células; Combine Linhas Duplicadas e Soma / Média... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Fórmulas favoritas e de inserção rápida, Intervalos, gráficos e imagens; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Agrupamento de tabela dinâmica por número da semana, dia da semana e mais ... Mostrar células desbloqueadas, bloqueadas por cores diferentes; Destacar células que possuem fórmula / nome...
guia kte 201905
  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório

 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you very much hundred timessss
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations