Por que minha macro do Excel falha quando é executada a partir de uma tecla de atalho e funciona quando executada a partir da faixa de opções de macros?

0

Estou realmente confuso com o que está acontecendo com uma macro que criei para analisar arquivos delimitados por espaço.

A macro é executada com êxito, desde que eu selecione a faixa de macros e a macro na caixa de diálogo.

Se eu tentar executá-lo usando uma tecla de atalho, tudo o que ocorrer é que a coluna A é realçada, a coluna B é destacada e, em seguida, ela volta para o realce da coluna A.

Eu tentei várias combinações de teclas de atalho diferentes, a corrente é Ctrl + Deslocamento + Y .

O seguinte é o código de macros e qualquer ajuda seria apreciada.

Sub DLEligibleParse()
    '
    ' DLeligibleparse Macro
    ' this utilizes the eligible list end positionseff 4-22-12
    '
    '
    Columns("B:B").Select
    Selection.NumberFormat = "0000000000000"
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(13, 1), Array(43, 1), Array(45, 1), Array(80, 1), _
        Array(115, 1), Array(150, 1), Array(185, 1), Array(220, 1), Array(222, 1), Array(231, 1), _
        Array(266, 1), Array(301, 1), Array(336, 1), Array(371, 1), Array(373, 1), Array(382, 1), _
        Array(385, 1), Array(402, 1), Array(455, 1), Array(490, 1), Array(525, 1), Array(527, 1), _
        Array(536, 1), Array(539, 1), Array(549, 1), Array(559, 1), Array(564, 1), Array(579, 1), _
        Array(581, 1), Array(596, 1), Array(598, 1), Array(610, 1), Array(622, 1), Array(640, 1), _
        Array(655, 1), Array(670, 1), Array(687, 1), Array(702, 1), Array(717, 1), Array(734, 1), _
        Array(749, 1), Array(764, 1), Array(781, 1), Array(796, 1), Array(811, 1), Array(828, 1), _
        Array(843, 1), Array(858, 1), Array(875, 1), Array(890, 1), Array(905, 1), Array(922, 1), _
        Array(937, 1), Array(952, 1), Array(969, 1), Array(984, 1), Array(999, 1), Array(1016, 1), _
        Array(1031, 1), Array(1046, 1), Array(1063, 1), Array(1078, 1), Array(1093, 1), Array( _
        1110, 1), Array(1125, 1), Array(1140, 1), Array(1157, 1), Array(1172, 1), Array(1187, 1), _
        Array(1204, 1), Array(1212, 1), Array(1224, 1), Array(1225, 1), Array(1226, 1), Array( _
        1227, 1), Array(1228, 1)), TrailingMinusNumbers:=True
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select
End Sub
    
por small3687 15.05.2013 / 22:37

1 resposta

0

Eu recomendo livrar-me das instruções "select". Eles atrapalham a execução de código de maneiras imprevisíveis. Tente isso.

Sub DLEligibleParse()
    '
    ' DLeligibleparse Macro
    ' this utilizes the eligible list end positionseff 4-22-12
    '
    '
    Columns("B:B").NumberFormat = "0000000000000"
    Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(13, 1), Array(43, 1), Array(45, 1), Array(80, 1), _
        Array(115, 1), Array(150, 1), Array(185, 1), Array(220, 1), Array(222, 1), Array(231, 1), _
        Array(266, 1), Array(301, 1), Array(336, 1), Array(371, 1), Array(373, 1), Array(382, 1), _
        Array(385, 1), Array(402, 1), Array(455, 1), Array(490, 1), Array(525, 1), Array(527, 1), _
        Array(536, 1), Array(539, 1), Array(549, 1), Array(559, 1), Array(564, 1), Array(579, 1), _
        Array(581, 1), Array(596, 1), Array(598, 1), Array(610, 1), Array(622, 1), Array(640, 1), _
        Array(655, 1), Array(670, 1), Array(687, 1), Array(702, 1), Array(717, 1), Array(734, 1), _
        Array(749, 1), Array(764, 1), Array(781, 1), Array(796, 1), Array(811, 1), Array(828, 1), _
        Array(843, 1), Array(858, 1), Array(875, 1), Array(890, 1), Array(905, 1), Array(922, 1), _
        Array(937, 1), Array(952, 1), Array(969, 1), Array(984, 1), Array(999, 1), Array(1016, 1), _
        Array(1031, 1), Array(1046, 1), Array(1063, 1), Array(1078, 1), Array(1093, 1), Array( _
        1110, 1), Array(1125, 1), Array(1140, 1), Array(1157, 1), Array(1172, 1), Array(1187, 1), _
        Array(1204, 1), Array(1212, 1), Array(1224, 1), Array(1225, 1), Array(1226, 1), Array( _
        1227, 1), Array(1228, 1)), TrailingMinusNumbers:=True
    Cells.EntireColumn.AutoFit
End Sub
    
por 25.08.2017 / 15:31