Visual Basic.NET - Error OutOfMemoryException

 
Vista:

Error OutOfMemoryException

Publicado por Aldo (5 intervenciones) el 03/08/2016 06:51:42
Hola, tengo el siguiente problema, estoy generando un complemento para Excel en el cual me lee el valor de una celda de la celda A1 a la A60000 todo esto en un ciclo While, pero el proceso se detiene por el siguiente error "OutOfMemoryException" hay alguna forma de evitar este error.

De antemano Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error OutOfMemoryException

Publicado por Miguel (476 intervenciones) el 03/08/2016 11:50:01
Hola,
Eso pasa porque estás consumiendo todos los recursos del ordenador. Habría que ver si puedes optimizar tu código. También puede ser que tengas un bucle infinito, porque lo que estás haciendo no te debería causar ese tipo de problemas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error OutOfMemoryException

Publicado por Diego (190 intervenciones) el 05/08/2016 18:33:20
Podrías pasar el codigo? Asi podemos ver de que se trata?
Saludos y +bytes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error OutOfMemoryException

Publicado por Aldo (5 intervenciones) el 12/08/2016 21:48:35
Hola adjunto el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click
 
	Dim hoja As Excel.Worksheet = Globals.ThisAddIn.Application.Workbooks(1).Worksheets(1)
 
	Dim col_son As Integer
	Dim col_desde As Integer
	Dim col_hasta As Integer
	Dim col_resul As Integer
	Dim fila, col, fila_fin, col_fin, fil_cont, col_cont As Long
	Dim interr As Integer
 
	col_son = EditBox1.Text
	col_desde = EditBox2.Text
	col_hasta = EditBox3.Text
	col_resul = EditBox4.Text
 
	fila = 1
	col = 1
	fila_fin = fila
	col_fin = col
 
	MsgBox("Tiene que estar ordenada la tabla ")
 
	While (Len(hoja.Cells(fila_fin, col_son).value) <> 0)
		'MsgBox(hoja.Cells(fila, col_son).value)
		fila_fin = fila_fin + 1
	End While
 
	While (Len(hoja.Cells(fila, col_fin).value) <> 0)
		'MsgBox(hoja.Cells(fila, col_son).value)
		col_fin = col_fin + 1
	End While
 
	col_fin = col_fin - 1
	fila_fin = fila_fin - 1
 
	MsgBox("Nombre del sondaje : " & hoja.Cells(fila, col_son).value & Chr(13) & "Campo Desde : " & hoja.Cells(fila, col_desde).value & Chr(13) & "Campo Hasta : " & hoja.Cells(fila, col_hasta).value)
 
	interr = MsgBox("Evaluara hasta la fila : " & fila_fin & " y columna : " & col_fin, MsgBoxStyle.OkCancel, "Informacion")
 
	If (interr = 1) Then
		hoja.Cells(fila, col_resul).Value = "Overlaps"
		hoja.Cells(fila, col_resul + 1).Value = "From igual To"
		hoja.Cells(fila, col_resul + 2).Value = "From mayor To"
		fil_cont = fila + 1
		While (fil_cont <= fila_fin)
			If (hoja.Cells(fil_cont + 1, col_son).Value = hoja.Cells(fil_cont, col_son).Value) _
				And (hoja.Cells(fil_cont + 1, col_desde).Value < hoja.Cells(fil_cont, col_hasta).Value) Then
				hoja.Cells(fil_cont, col_resul).Value = "Overlaps"
				hoja.Cells(fil_cont + 1, col_resul).Value = "Overlaps"
			End If
			If (hoja.Cells(fil_cont, col_desde).Value = hoja.Cells(fil_cont, col_hasta).Value) Then
				hoja.Cells(fil_cont, col_resul + 1).Value = "From igual To"
			End If
			If (hoja.Cells(fil_cont, col_desde).Value > hoja.Cells(fil_cont, col_hasta).Value) Then
				hoja.Cells(fil_cont, col_resul + 2).Value = "From > To"
			End If
			fil_cont = fil_cont + 1
		End While
	End If
	MsgBox("Proceso Terminado")
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar