Cria-se uma variável global e uma função (que é o critério da consulta) recebe o valor.
Melhor visualizar o exemplo que fica mais fácil de entender.
;-)
Eventualmente dicas sobre outros programas, Windows e hardware.
Observação |
---|
Por padrão, o Office 2010 instala a versão de 32 bits. Você deve escolher explicitamente instalar a versão de 64 bits durante a instalação.
|
Observação |
---|
Você precisa modificar o código VBA somente se ele for executado na versão de 64 bits do Microsoft Office.
|
Observação |
---|
As instruções Declare com a palavra-chave PtrSafe é a sintaxe recomendada. As instruções Declare que incluem PtrSafe funcionam corretamente no ambiente de desenvolvimento do VBA7 em ambas as plataformas, de 32 e 64 bits. Para garantir a compatibilidade com versões anteriores no VBA7, use o construto a seguir:
|
#If Vba7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf
Declare Function GetActiveWindow Lib "user32" () As Long
Declare PtrSafe Function GetActiveWindow Lib "user32" () As Long
Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
#if Vba7 then ' Code is running in the new VBA7 editor #if Win64 then ' Code is running in 64-bit version of Microsoft Office #else ' Code is running in 32-bit version of Microsoft Office #end if #else ' Code is running in VBA version 6 or earlier #end if #If Vba7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf
Nome
|
Tipo
|
Descrição
|
---|---|---|
Palavra-chave
|
Garante que a instrução Declare seja direcionada para sistemas de 64 bits. Necessário para versões de 64 bits.
| |
Tipo de dados
|
Alias de tipo que mapeia o Long em sistemas de 32 bits, ou o LongLong em sistemas de 64 bits.
| |
Tipo de dados
|
Tipo de dados de 8 bytes que está disponível somente em sistemas de 64 bits. Tipo numérico. Números inteiros no intervalo de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. O LongLong é um tipo declarado válido somente em plataformas de 64 bits. Além disso, o LongLong não pode ser convertido implicitamente em um tipo menor (por exemplo, não é possível atribuir um tipo de dados LongLong a um do tipo Long.). Isso é feito para evitar que haja truncamento de ponteiro inadvertidamente. Coerções explícitas são permitidas, portanto, no exemplo acima, é possível aplicar um CLng a um LongLong e atribuir o resultado a um Long. (Válido somente em plataformas de 64 bits.)
| |
^
|
Caractere de declaração de tipo LongLong
|
Declara um valor literal explicitamente como um LongLong. Necessário para declarar um literal de LongLong maior que o valor de Long máximo (do contrário, ele será convertido implicitamente em double).
|
função de conversão de tipo
|
Converte uma expressão simples em um LongPtr.
| |
função de conversão de tipo
|
Converte uma expressão simples em um tipo de dados LongLong. (Válido somente em plataformas de 64 bits.)
| |
constante VarType
|
constante VarType
| |
instrução DefType
|
Define o tipo de dados padrão para uma gama de variáveis como LongPtr.
| |
instrução DefType
|
Define o tipo de dados padrão para uma gama de variáveis como LongLong.
|
Sub ConsolidaNovo() Dim i As Integer Dim NomeArquivo As String Dim Origem As Workbook Dim Caminho As String Caminho = InputBox("Informe o caminho da pasta que contém as planilhas" & vbCrLf & "Exemplo: C:\Pastas\") If Caminho = "" Then Exit Sub If Right(Caminho, 1) <> "\" Then Caminho = Caminho & "\" NomeArquivo = Dir(Caminho) i = ActiveWorkbook.Sheets.Count Application.ScreenUpdating = False Do Until NomeArquivo = "" Set Origem = Workbooks.Open(Filename:=Caminho & NomeArquivo) Origem.ActiveSheet.Copy After:=Workbooks("Consolidar.xls").Sheets(i) Origem.Close SaveChanges:=False ActiveSheet.Name = NomeArquivo i = i + 1 NomeArquivo = Dir Application.ScreenUpdating = True Loop Set Origem = Nothing Sheets(1).Select End Sub