Não analisei totalmente seu código, @Bautto, mas acredito que o problema principal está em todos os pontos em que vc faz concatenações com a variável MesRef.
Se vc deixar ela entre aspas, junto com as outras palavras, ela não retornará nenhum valor, vai retornar o texto do nome da própria variável tal qual já está.
Além disso, diferentemente de lá no Excel, no VBA é obrigatório deixar um espaço em branco antes e depois do operador de concatenação "&".
Por exemplo, onde vc escreveu
ActiveWorkbook.Queries.Add Name:="lamina_fi_&MesRef", Formula:= _....
Como a variável MesRef está entre aspas ("lamina_fi_&MesRef"), isso vai retornar lamina_fi_&MesRef ao invés de lamina_fi_202201.
O certo seria assim:
ActiveWorkbook.Queries.Add Name:="lamina_fi_" & MesRef, Formula:= _
Outro exemplo:
Errado: .CommandText = Array("SELECT * FROM [lamina_fi_&MesRef]")
Certo:.CommandText = Array("SELECT * FROM [lamina_fi_" & MesRef & "]")
Note inclusive o espaço antes e após o E Comercial.
Tem que alterar em todos os pontos em que isso acontece. Fiz isso aqui e abriu normalmente.
Postado : 22/02/2022 8:27 pm