question

Como voce encontra a soma dos blocos continuos de celulas no Excel 2007/VBA?

Alguém pode me ajudar com uma função de Excel 2007?

Não sei a sintaxe VBA, mas eu sei que a lógica da função que gostaria de usar em uma planilha.

Aqui é a idéia em pseudocódigo:

Função SumUntilBlank (startCell)

Current_Cell = startCell

Enquanto o CurrentCell não está em branco

Soma = soma + CurrentCell.Value

CurrentCell = deslocamento (CurrentCell, 0 Col, 1 linha) / / Move a linha atual de uma célula para baixo

Fim enquanto

Retornar a soma

End Function


Estou querendo usá-lo da seguinte maneira

Dado de uma coluna com o seguinte,

A1: =SumUntilBlank(A2)
A2: 1
A3: 1
A4: 1
A5:
A6: 235
A7:
A8: =SumUntilBlank(A6)
A9: 1
A10: 1
A11:
A12: 100

A1 exibiria 3 (a soma de a2: a4) enquanto A8 exibiria 2 (a soma de A9:A10).

Dado que a lógica, qualquer um pode preencher as lacunas sintáticas? GaryE: Obrigado pelo código! :)

Infelizmente ele está jogando uma? erro de # nome no Excel 2007.

Eu testei-o em uma pequena coluna de 4 células contínuas, formatado para número, com a célula de fórmula no topo da coluna, com o argumento definido para a célula abaixo dela.

Alguma idéia de por que isso pode lançar um? erro # nome?
resposta Resposta
+ VER ADICIONADO ABAIXO +

O pseudocódigo, comentou.

Código recomendado inserido.

Função SumUntilBlank (StartCell Range) As Long

' Função SumUntilBlank(startCell)

Dim iRow, iCol, iSum As Long

iRow = StartCell.Row

iCol = StartCell.Column

' Enquanto o CurrentCell não está em branco

Fazer enquanto Cells(iRow, iCol) > ""

' Soma = soma + CurrentCell.Value

iSum = iSum + células (iRow, iCol)

' CurrentCell = deslocamento (CurrentCell, 0 Col, 1 linha)

' / / Move a linha atual de uma célula para baixo

iRow = iRow + 1

' End While

Loop

' Retornar a soma

SumUntilBlank = iSum

End Function

Copie o bloco completo.

Remova o pseudocódigo, se e quando quiser.

Obs1: como esse código é escrito o contínuo bloco pode começar em qualquer lugar, mas deve ser em uma coluna. Você poderia criar uma função similar (com um nome diferente) para operar em uma linha aumentando iCol em vez de iRow. Ou você pode adicionar um segundo parâmetro para indicar as quatro possibilidades como a coluna, a coluna, toda a linha, ou para trás da linha de frente.

Obs2: Se você estará compartilhando a função com os outros, você deve adicionar o conteúdo numérico da célula e para a última célula na planilha de verificação de erros.

+ ADICIONADO +

UM ERRO # NOME? erro seria mais provavelmente vem do nome da função que está sendo digitado incorretamente na célula onde você estava tentando usá-lo.

Para verificar isso e localizar exatamente onde o problema se não for lá, vá para o código e clique na frente do iRow = StartCell.Row linha de código para que ele é realçado e há um círculo na frente dele.

Depois ir volta para a célula onde a fórmula é inserida, adicione um espaço no final da fórmula e pressione enter.

Se # nome? aparece na célula imediatamente o problema é a ortografia. Caso contrário, o código será exibido com uma seta na parte superior do círculo que você criou anteriormente.

Enquanto assiste tanto a célula que contém a fórmula e o código de função pressione F8 e ver a seta mover para baixo o código. Pressione F8 repetidamente até que a seta desaparece e a indicação de erro aparece na célula da fórmula. A última linha do código que a seta apontada (você terá que lembrar o que era) é a linha que causou o erro.

Se for necessário, modificar a pergunta novamente para identificar a linha de erro e vou dar outra olhada. Por agora, meu dinheiro está em um erro de ortografia.

ComentáriosComentá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-2024
All rights reserved