Depois de executar a macro e gerar dados nesta planilha original, solicito ao usuário que nomeie essa planilha original usando o código abaixo.
oriSheet = InputBox("Please Name the Sheet?", vbOKCancel)
If oriSheet = False Or oriSheet = "" Then
MsgBox "Invalid Name"
Exit Sub
Else
ActiveSheet.Name = oriSheet
End If
oriSheet = ""
Então eu corro outra sub, para pegar o oriSheet agora para filtragem.
É possível consultar essa planilha usando a variável?
Porque parece que não chego lá com o erro "subscrito fora do intervalo" no código abaixo.
Set sht = ThisWorkbook.Worksheets("oriSheet")
Set newsht = ThisWorkbook.Worksheets("sheet2")
Tirei as aspas duplas pensando por causa delas, oriSheet não é interpretado, como outra linguagem de programação. Mas ainda não está funcionando.
Achei que poderia ser fácil, mas havia passado horas nisso.
Eu entrei no Google, há um ditado que diz: "Há duas maneiras de se referir à planilha, por índice (mas idk o índice) e por nome (mas idk o nome também?)"
Set sht = ThisWorkbook.Worksheets(oriSheet)
já que o oriSheet é uma string em si. Claro que você precisa evitar redefini-lo ( oriSheet = " "
) no final do outro procedimento e também a variável (e preferencialmente Subs) deve ser Public
.
Set WS = Activesheet ... WS.Name = oriSheet
.