question

Excel Macro (adicionando por 1).?

Oi pessoal

Fui pesquisando e testando por muitas horas e não foram bem sucedidas.

Estou tentando adicionar 1 a uma ActiveCell na coluna A.

Isto é como a minha folha se parece:

Sheet1.

A1 = número de factura (este é o título).
A2 = 2010-0001 (o primeiro número de factura).
A3 = 2010-0002 (segundo número de factura).
A4 = (há nenhum fatura número nesta célula como este foi um recibo).
A5 = 2010-0003
A6 =
A7 = (este é o recibo, assim são os em branco acima e abaixo.)
A9 =
A10 = ((aqui eu quero a macro para rolar até após os espaços em branco para A5 e adicionar + 1 que deve dar-me o seguinte número de factura "2010-0004"))

Macro gravada:

Selection.FormulaR1C1 = "= R-[5] C + 1"

Eu posso ver que há uma-[5], que significa ele subiu por 5 células para adicionar 1, mas isso vai sempre subir por 5 antes de adicionar 1 (que é o desafio).

Eu quero substituí-lo com algo como = Selection.End(xlUp).Selecione + 1 (não consegui encontrar nada sobre isso).

Qualquer Conselho será muito apreciado, muito obrigado em avançado.

resposta Resposta

Se você quer o próximo número de factura em série para ser colocado na activecell, aqui está uma maneira de fazê-lo com a macro a seguir. Ele vai lidar com a factura de números de 1 a 9999. Se você tiver uma entrada em uma célula na coluna A como 'aaaa-bbbb', ele será ignorado.

Copie a macro para a área de transferência:

Sub Set_InvNum()


Dim I, LastRow
LastRow = Range ("A" & Rows.Count).End(xlUp).Linha
Em erro continuar próximo
Se ActiveCell.Column <> 1 então
Exit Sub
End If
Para i = LastRow para a etapa 2 -1
Se Len (células (i, "A")) = 9 e _
ASC (Mid (células i, "A", 5, 1)) = 45 então
Se direito (células i, "A", 4) = 9999 então
MsgBox "número de factura excederá campo comprimento.", vbOKOnly, "Erro"
Exit Sub
End If
Se direito (células i, "A", 4) < 9999="" and="" right(cells(i,="" "a"),="" 4)=""> </>= 999, em seguida,
ActiveCell.Value = esquerda (células i, "A", 5) & direito (células i, "A", 4) + 1
Exit Sub
ElseIf direito (células i, "A", 4) < 999="" and="" right(cells(i,="" "a"),="" 4)=""> </>= 99, então
ActiveCell.Value = esquerda (células i, "A", 6) & direito (células i, "A", 3) + 1
Exit Sub
ElseIf direito (células i, "A", 4) < 99="" and="" right(cells(i,="" "a"),="" 4)=""> </>= 9 então
ActiveCell.Value = esquerda (células i, "A", 7) & direito (células i, "A", 2) + 1
Exit Sub
ElseIf direito (células i, "A", 4)< 9="" then="">
ActiveCell.Value = esquerda (células i, "A", 8) & direito (células i, "A", 1) + 1
Exit Sub
End If
End If
Próxima
End Sub

Em seguida, pressione ALT + F11

Nos menus na parte superior do VBE, selecione Inserir > módulo

Cole a macro no módulo de edição área à direita.

Fechar o VBE e retornar ao Excel.

Pressione ALT + F8

Quando abre a janela de Macros, destaque essa macro e clique em 'Opções'...

Digite uma carta para ser usado como um atalho de teclado e clique em 'OK'.

Feche a janela de Macros e retornar ao Excel.

Selecione qualquer célula em branco na coluna A e pressione CTRL + a sua carta para inserir o próximo número de factura.

resposta Não é a resposta que você estava procurando?
Adicionar um comentário ou resposta a esta pergunta

Pesquisar uma resposta melhor..
Ou, fazer uma pergunta..
Comentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2021
All rights reserved