 # Answered! Option Explicit Option Base 1 Sub finalproject() ' Decleration of variables Dim x, u, l, i, j, n, b As Integer…

Option Explicit
Option Base 1

Sub finalproject()

Don't use plagiarized sources. Get Your Custom Essay on
Answered! Option Explicit Option Base 1 Sub finalproject() ' Decleration of variables Dim x, u, l, i, j, n, b As Integer…
GET AN ESSAY WRITTEN FOR YOU FROM AS LOW AS \$13/PAGE

‘ Decleration of variables

Dim x, u, l, i, j, n, b As Integer
Dim frec1, frec2, frec3, frec4, frec5, frec6, frec7, frec8, frec9, frec10 As Integer
Dim g As String
Dim r() As Integer
‘ initial values input

x = Cells(4, 4)
ReDim r(x) As Integer
u = Cells(5, 4)
l = Cells(6, 4)
g = “_”

‘ finding the number of raws

n = Int(x / 7 + 1)

‘ calculating bucket size

b = Int((u – l) / 10)

‘ Generating random number and assigning them to cells

Do

For j = 1 To 7
r(x) = Int((u – l + 1) * Rnd + l)
Cells(i + 12, j + 2) = r(x)
If Cells(i + 12, j + 2) <= l + b Then
frec1 = frec1 + 1
Cells(12, 16) = frec1
End If
If Cells(i + 12, j + 2) <= l + (2 * b) Then
frec2 = frec2 + 1
Cells(13, 16) = Abs(frec2 – frec1)
End If
If Cells(i + 12, j + 2) <= l + (3 * b) Then
frec3 = frec3 + 1
Cells(14, 16) = Abs(frec3 – frec2)
End If
If Cells(i + 12, j + 2) <= l + (4 * b) Then
frec4 = frec4 + 1
Cells(15, 16) = Abs(frec4 – frec3)
End If
If Cells(i + 12, j + 2) <= l + (5 * b) Then
frec5 = frec5 + 1
Cells(16, 16) = Abs(frec5 – frec4)
End If
If Cells(i + 12, j + 2) <= l + (6 * b) Then
frec6 = frec6 + 1
Cells(17, 16) = Abs(frec6 – frec5)
End If
If Cells(i + 12, j + 2) <= l + (7 * b) Then
frec7 = frec7 + 1
Cells(18, 16) = Abs(frec7 – frec6)
End If
If Cells(i + 12, j + 2) <= l + (8 * b) Then
frec8 = frec8 + 1
Cells(19, 16) = Abs(frec8 – frec7)
End If
If Cells(i + 12, j + 2) <= l + (9 * b) Then
frec9 = frec9 + 1
Cells(20, 16) = Abs(frec9 – frec8)
End If
If Cells(i + 12, j + 2) <= l + (10 * b) Then
frec10 = frec10 + 1
Cells(21, 16) = Abs(frec10 – frec9)
End If
x = x – 1
If x = 0 Then Exit Do
Next j
i = i + 1
Loop Until n = i

‘ computing buckets and assigning them to thier cells

For i = 1 To 10
Cells(i + 11, 13) = i
Cells(i + 11, 14) = l + (i * b)
Next i

‘ determining class range for each bucket

For i = 1 To 10
Cells(11 + i, 15) = l & g & (l + b)
l = l + b + 1

Next i

‘ assigning array values to cells on the spread sheet

For x = 1 To x
Cells(x, 20) = r(x)
Next x

End Sub

question : in this VBA code the array r(x) only output the last value that the array holds into the spreadsheet and doesnt output the rest of the values that the array r(x) holds

for example if x = 15 that means r(x) have 15 places that i can store values in ( the problem is that r(x) only outpute the last value to the spread sheet )

please modify the program so the array r(x) would output all of it values into the spreadsheet .

Note : if you do not know the answer please leave it for some who knows and do not answer it .

NOTE: Problem solved. Show explanation below

Your code with little modification which is boldened

————————————————————————————

Option Explicit

Option Base 1
Public Sub finalproject()
‘ Decleration of variables
Dim x, u, l, i, j, n, b As Integer
Dim frec1, frec2, frec3, frec4, frec5, frec6, frec7, frec8, frec9, frec10 As Integer
Dim g As String
Dim r() As Integer
‘ initial values input
x = Cells(4, 4)
ReDim r(x) As Integer
u = Cells(5, 4)
l = Cells(6, 4)
g = “_”

‘ finding the number of raws
n = Int(x / 7 + 1)

‘ calculating bucket size
b = Int((u – l) / 10)
‘ Generating random number and assigning them to cells
Do
For j = 1 To 7
r(x) = Int((u – l + 1) * Rnd + l)
Cells(i + 12, j + 2) = r(x)
If Cells(i + 12, j + 2) <= l + b Then
frec1 = frec1 + 1
Cells(12, 16) = frec1
End If
If Cells(i + 12, j + 2) <= l + (2 * b) Then
frec2 = frec2 + 1
Cells(13, 16) = Abs(frec2 – frec1)
End If
If Cells(i + 12, j + 2) <= l + (3 * b) Then
frec3 = frec3 + 1
Cells(14, 16) = Abs(frec3 – frec2)
End If
If Cells(i + 12, j + 2) <= l + (4 * b) Then
frec4 = frec4 + 1
Cells(15, 16) = Abs(frec4 – frec3)
End If
If Cells(i + 12, j + 2) <= l + (5 * b) Then
frec5 = frec5 + 1
Cells(16, 16) = Abs(frec5 – frec4)
End If
If Cells(i + 12, j + 2) <= l + (6 * b) Then
frec6 = frec6 + 1
Cells(17, 16) = Abs(frec6 – frec5)
End If
If Cells(i + 12, j + 2) <= l + (7 * b) Then
frec7 = frec7 + 1
Cells(18, 16) = Abs(frec7 – frec6)
End If
If Cells(i + 12, j + 2) <= l + (8 * b) Then
frec8 = frec8 + 1
Cells(19, 16) = Abs(frec8 – frec7)
End If
If Cells(i + 12, j + 2) <= l + (9 * b) Then
frec9 = frec9 + 1
Cells(20, 16) = Abs(frec9 – frec8)
End If
If Cells(i + 12, j + 2) <= l + (10 * b) Then
frec10 = frec10 + 1
Cells(21, 16) = Abs(frec10 – frec9)
End If
x = x – 1
If x = 0 Then Exit Do
Next j
i = i + 1
Loop Until n = i

‘ computing buckets and assigning them to thier cells
For i = 1 To 10
Cells(i + 11, 13) = i
Cells(i + 11, 14) = l + (i * b)
Next i
‘ determining class range for each bucket
For i = 1 To 10
Cells(11 + i, 15) = l & g & (l + b)
l = l + b + 1
Next i
‘ assigning array values to cells on the spread sheet

For x = 1 To UBound(r)
Cells(x, 20) = r(x)
Next x

End Sub

Private Sub CommandButton1_Click()
finalproject
End Sub

—————————————————————————–

Expla:

For x = 1 To UBound(r)
Cells(x, 20) = r(x)
Next x

Yor code was for x=1 to x ,Before this code value of x is 0 , and when x=1 it 1st iteration , The The loop runs x times i,e 1 time. and it prints r(1)

But we have to print all values of r(). So we loop must iterates n (number of elements in array) times . SO to number of elements in array use Ubound(r).

Note: you must provide values in the cell D\$,D5,D6 and the values of r90 is shown in T column

———————————————-

output 