Excel VBA "Deselecionar" desejado

Eu gostaria que a aparência final após o meu VBA ter terminado de ser esvaziado da seleção - não tivesse célula ou intervalo em qualquer folha colorida (se fosse faixa selecionada) ou em uma caixa de linha em negrito (qualquer coisa que estivesse selecionada). Pupose: para apresentar ao cliente uma boa aparência final.

Eu procurei e não consegui encontrar como fazer isso. Há um Unselect de acordo com o MS, mas não parece fazer nada.

7
Por que você não seleciona a célula A1 quando salva para apresentar uma aparência limpa. Se você quiser tirar a formatação das células, isso é diferente.
adicionado o autor Yudhistira Hayuatma, fonte
O cursor tem que estar em algum lugar. Por que não colocá-lo no canto inferior direito com as planilhas ("xxxx"). Células (Rows.Count, Columns.Count) .Selecione ou qualquer lugar que esteja a pelo menos uma tela de distância da área usada.
adicionado o autor Becky, fonte
você poderia apenas colocá-lo de volta onde estava quando a macro foi chamada?
adicionado o autor SeanC, fonte

7 Respostas

Selecione qualquer célula e desative o CutCopy :

  Range("A1").Select
  Application.CutCopyMode = False
9
adicionado
Sim, perfeito para mim. Obrigado. Eu tinha uma macro VBA que copiou algumas células de uma pasta de trabalho para outra e, em seguida, fechou a pasta de trabalho de origem, mas como algumas células ainda estavam selecionadas para copiar na fonte, ela não fechava imediatamente. Application.CutCopyMode = Fixo corrigido para mim. Valeu broto!
adicionado o autor Cedric Mamo, fonte

Existe uma maneira complicada de fazer isso.

Crie um objeto, como um botão. Selecione este botão e, em seguida, oculte-o e nenhuma célula será selecionada.

ActiveSheet.Shapes("Button 1").Visible = True

ActiveSheet.Shapes("Button 1").Select

ActiveSheet.Shapes("Button 1").Visible = False

É isso aí.

2
adicionado

Ao desativar a atualização da tela antes de selecionar uma célula, role para as células selecionadas e desative-as temporariamente.

Esse código verifica quais células estão visíveis no momento e seleciona a primeira célula abaixo do intervalo visível que não está visível. Por exemplo, quando eu tento: o intervalo de Visble é A1: BC79, então este código seleciona A80 e rolar para baixo e para a direita e executá-lo novamente revela que o excel escolhe a primeira célula NÃO visível abaixo da primeira coluna visível.

Dim r As Range
Application.ScreenUpdating = False
Set r = Application.ActiveWindow.VisibleRange
r(r.Cells.Count + 1).Select
Application.ScreenUpdating = True

1
adicionado

O Excel sempre tem algo selecionado. Um trabalho é necessário. Selecionando uma célula fora da tela irá definir o foco lá, de modo que não funcionará em si. Este código coloca o cursor fora da tela e, em seguida, rola a folha de volta para cima para ver A1 .

Sub NoSelect()    
  Range("BB100").Select
  ActiveWindow.SmallScroll up:=100
  ActiveWindow.SmallScroll ToLeft:=44
End Sub

Se você está realmente querendo 'nada selecionado', você pode usar o VBA para proteger a planilha no final da execução do código, o que fará com que nada seja selecionado. Você pode adicioná-lo a uma macro ou colocá-lo diretamente no VBA.

Sub NoSelect()
   With ActiveSheet
   .EnableSelection = xlNoSelection
   .Protect
   End With
End Sub

Assim que a planilha estiver desprotegida, o cursor ativará uma célula.

1
adicionado

A única resposta é trapacear.

Hide column A and row 1

Put cursor in A1. There will be a tiny dot in the corner of B2

1
adicionado
ou você pode selecionar uma célula fora do intervalo visível.
adicionado o autor Daniel, fonte
@ CronoS, que com zoom de 10%, e uma tela de 1280x1024 é ~ HA375. talvez XFD1048576 ? :)
adicionado o autor SeanC, fonte

Dependendo do tamanho da sua seleção, para se livrar de qualquer artefato (não sei se isso também é um problema em 2013 Excel, mas no Mac era uma dor constante para mim) você pode apenas percorrer célula por célula e selecione cada um.

1
adicionado

Use um truque: adicione uma forma, selecione-a e oculte-a.

Source code for this is in answer of different question on this site.

0
adicionado