Podemos definir o Excel para acrescentar texto de célula ao pressionar a tecla para excluir o texto atual?

0

Estou usando muito o Excel para contabilidade. Acontece muito tempo que eu calculo vários valores na mesma célula. Então meu celular pode parecer com =12+345+23+88 .

Agora, o comportamento padrão do Excel é excluir o conteúdo atual de uma célula em um pressionamento de tecla. E se você quiser acrescentar algum texto, então você tem que clicar duas vezes ou F2.

Existe uma maneira de definir o Excel para acrescentar a tecla pressionada? Por exemplo, no meu exemplo acima, eu pressionaria a tecla + e o Excel abriria a célula para editar o símbolo anexando + no final.

    
por JoeM 28.09.2014 / 12:39

1 resposta

0

Eu tive um problema como o seu há algum tempo, e encontrei uma solução que você pode usar também. O seguinte é alterado para se adequar ao seu problema específico.

Coloque isso no código da planilha:

Private Sub Worksheet_Activate()

    Dim sht As Worksheet
    Set sht = ActiveWorkbook.Worksheets("Sheet1")

    If Not Intersect(ActiveCell, sht.Range("A1:A10")) Is Nothing Then

        ChangeKeys True

    End If

End Sub

Private Sub Worksheet_Deactivate()

    ChangeKeys False

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim sht As Worksheet
    Set sht = ActiveWorkbook.Worksheets("Sheet1")

    If Not Intersect(ActiveCell, sht.Range("A1:A10")) Is Nothing Then

        ChangeKeys True

    Else

        ChangeKeys False

    End If

End Sub

Coloque isso em um módulo:

Sub ChangeKeys(KeysChanged As Boolean)

    If KeysChanged Then

        'Add procedures to the keys

        'Functions on numpad (http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000520.html)
        Application.OnKey "{106}", "'KeyPress " & 42 & "'" 'Multiply *
        Application.OnKey "{107}", "'KeyPress " & 43 & "'" 'Add +
        Application.OnKey "{109}", "'KeyPress " & 45 & "'" 'Subtract -
        Application.OnKey "{111}", "'KeyPress " & 47 & "'" 'Divide /

    Else

        'Reset the keys

        'Functions on numpad (http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000520.html)
        Application.OnKey "{106}" 'Multiply *
        Application.OnKey "{107}" 'Add +
        Application.OnKey "{109}" 'Subtract -
        Application.OnKey "{111}" 'Divide /

    End If

End Sub


Function KeyPress(the_key As Long)

    Application.SendKeys "{F2}{" & Chr$(the_key) & "}"

End Function

O comportamento de pressionamento de tecla é alterado para "+ - * /" (embora pareça não funcionar para "/" no Excel 2013) quando você seleciona uma célula em Intervalo ("A1: A10") e é alterado novamente quando selecione uma célula fora desse intervalo ou ative outra planilha. Você pode querer fazer algo semelhante quando você desativa / ativa a pasta de trabalho inteira.

Atenciosamente,

Simon

    
por 28.09.2014 / 21:47