Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

filipescoob

Subscript out of range: '13' , como resolvo este erro

Recommended Posts

Galera salve mais uma vez...Estou com este erro em um relatório e naõ estou conseguindo identificar onde estaerro: Microsoft VBScript runtime error '800a0009' Subscript out of range: '13' /telefonica/LongaDistancia/atual/irel_horahora.asp, line 102

'** Armazena os totais da campanha	intCol = 2	intRsCol = 0	intLin = 1	Do Until rsTotal.EOF		Do Until intRsCol > 5			strNomeColuna = UCase(rsTotal(intRsCol).Name)			filipe = filipe + 1response.write "filipe: " & filipe & "<br>"response.write "intcol: " & intCol &","& intLin &"<br>"'response.end			If cint(varRelat(intCol, 0)) = cint(rsTotal("hrContato")) Then   '--------------------	Esta é a linha 102							Select Case strNomeColuna					Case "CONTATO_EFETIVO"						varRelat(0, intLin) = "Contatos Efetivos"							response.write varRelat(0, intLin) & " | "						varRelat(1, intLin) = rsTotal("TOT_CONTATO_EFETIVO")							response.write varRelat(1, intLin) & " | "						varRelat(intCol, intLin) = rsTotal("CONTATO_EFETIVO")							response.write varRelat(intCol, intLin) & "<br>"											Case "LIG_EFETUADAS"						varRelat(0, intLin) = "Ligações Efetuadas"							response.write varRelat(0, intLin) & " | "						varRelat(1, intLin) = rsTotal("TOT_LIG_EFETUADAS")							response.write  varRelat(1, intLin) & " | "						varRelat(intCol, intLin) = rsTotal("LIG_EFETUADAS")							response.write varRelat(intCol, intLin) & "<br>"					Case "TOT_OPORTUN_VENDA"						varRelat(0, intLin) = "Contatos Efetivos com Oportun. Vendas"							response.write varRelat(0, intLin) & " | "						varRelat(1, intLin) = rsTotal("TOTG_OPORTUN_VENDA")							response.write varRelat(1, intLin) & " | "						varRelat(intCol, intLin) = rsTotal("TOT_OPORTUN_VENDA")							response.write varRelat(intCol, intLin) & "<br>"											Case "PERC_OPORTUN_VENDA"						varConversao(0, 0) = "Conversão por Oportunidade de Vendas"							response.write varConversao(0, 0) & " | "						varConversao(1, 0) = rsTotal("PERC_TOT_OPORTUN_VENDA") & "%"							response.write varConversao(1, 0) & " | "						varConversao(intCol, 0) = rsTotal("PERC_OPORTUN_VENDA") & "%"							response.write  varConversao(intCol, 0) & "<br>"					 					Case "PERC_CONTATO_EFETIVO"						varConversao(0, 1) = "Conversão por Contatos Efetivos"							response.write varConversao(0, 1) & " | "						varConversao(1, 1) = rsTotal("PERC_TOT_CONTATO_EFETIVO") & "%"							response.write varConversao(1, 1) & " | "						varConversao(intCol, 1) = rsTotal("PERC_CONTATO_EFETIVO") & "%"							response.write varConversao(intCol, 1) & "<br>"											Case "PERC_MAILING"						varConversao(0, 2) = "Conversão por Mailing"							response.write varConversao(0, 2) & " | "						varConversao(1, 2) = rsTotal("PERC_TOT_MAILING") & "%"							response.write varConversao(1, 2) & " | "						varConversao(intCol, 2) = rsTotal("PERC_MAILING") & "%"							response.write varConversao(intCol, 2) & "<br>"					 				End Select							intRsCol = intRsCol + 1				intLin = intLin + 1			Else				intCol = intCol + 1			End If		Loop				intCol = intCol + 1		intLin = 1		intRsCol = 0		rsTotal.movenext	Loop
Isto foi o que a pagina retornau quando foi executada.

filipe: 1intcol: 2,1Contatos Efetivos | 507 | 29filipe: 2intcol: 2,2Ligações Efetuadas | 507 | 29filipe: 3intcol: 2,3Contatos Efetivos com Oportun. Vendas | 507 | 29filipe: 4intcol: 2,4Conversão por Oportunidade de Vendas | 1737.93% | 100%filipe: 5intcol: 2,5Conversão por Contatos Efetivos | 99.41% | 100%filipe: 6intcol: 2,6Conversão por Mailing | 4.32% | 0.25%filipe: 7intcol: 3,1filipe: 8intcol: 4,1filipe: 9intcol: 5,1filipe: 10intcol: 6,1filipe: 11intcol: 7,1filipe: 12intcol: 8,1filipe: 13intcol: 9,1filipe: 14intcol: 10,1filipe: 15intcol: 11,1filipe: 16intcol: 12,1filipe: 17intcol: 13,1Microsoft VBScript runtime error '800a0009' Subscript out of range: '13' /atual/irel_horahora.asp, line 102

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Normalmente este erro acontece qdo você tenta recuperar um indíce inixistente em um vetro/array. Assim o vetor possue 10 elemetos e você tenta recuperar o 11.

 

Na linha varRelat(intCol, 0)) a variável intCol provavelmente esta maior que o Ubound(varRelat).

 

Dê:

response.write Ubound(varRelat)
e verifique que deve ser menor que 13.

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

kara obrigado pela resposta... o que acontece é o seguinte...ele esta maior porem não sei como fazer para ele não ir mais ja tentei de tudo no loop e se dou um redim maior na variavel ela fica loca e a pagina não funciona...Loucura....nUnca vi isso acontecer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Tenta isso:

Do Until intRsCol > 5			strNomeColuna = UCase(rsTotal(intRsCol).Name)			filipe = filipe + 1response.write "filipe: " & filipe & "<br>"response.write "intcol: " & intCol &","& intLin &"<br>"'response.end			'			 			'			'Faça o teste para verificar se o intCOL é maior que o 			'numero máximo de elemento se for você sai do loop 			if intCol > ubound(varRelat) then				 '..				 '.. Sai do loop				 '..			end if 			If cint(varRelat(intCol, 0)) = cint(rsTotal("hrContato")) Then   '--------------------	Esta é a linha 102
Ou faça o mesmo testo onde você soma em intCol.

intCol = intCol + 1			'Faça o teste para verificar se o intCOL é maior que o 			'numero máximo de elemento se for você sai do loop 			if intCol > ubound(varRelat) then				 '..				 '.. Sai do loop				 '..			end if 		intLin = 1
QQ coisa posta ai.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.