Me deparei com um problema estranho na MicrosoftExcel para Mac 16.11. É igualmente verdade para a versão do Windows também. Se eu copiar algumas células e usar o VBA para proteger ou desproteger a folha, a área de transferência será limpa. Aqui está o código que eu uso para proteger - desproteger:
Sheet1.Unprotect ("abc")
Sheet1.Protect ("abc")
Mas se eu copiar algumas células e usar a interface do usuário i.e Revise -> Proteger, Desproteger, a área de transferência é mantida e posso até ver que a borda pontilhada de cor verde nas células copiadas está intacta, ao contrário do caso anterior.
Eu posso usar o MSForms.DataObject para salvar manualmente o texto da área de transferência (funciona) antes de chamar de proteger / desproteger e restaurá-lo após a chamada, mas a borda verde pontilhada desaparece, o que pode causar confusão ao usuário.
Existe uma maneira de imitar no VBA o que a interface do usuário faz ao proteger / desproteger?
Respostas:
0 para resposta № 1Me deparei com algo enquanto pesquisava outra coisa, acho que pode ser uma resposta para isso, veja http://www.excel-first.com/autoexpand-excel-tables-on-protected-sheets/
Em resumo, parece que é um problema comum ao executar macros / código e que você pode impedir que o Excel limpe a área de transferência abrindo-a primeiro (você precisará fechá-la depois) usando:
OpenClipboard 0
~the action that would make Excel clear the clipboard~
CloseClipboard