Witam!
Mam problem z napisaniem programu.
Program ma wyszukać w komórkach 100X25 dwa wiersze liczb. Pierwszy wiersz ma traktować jako argumenty, a drugi jako wartości i ma liczyć z tego całkę metodą trapezów. Dodatkowo liczby pierwsze mają być zaznaczono na czerwono.
Proszę o pomoc jak to można rozwiązać problem z wyszukiwaniem liczb i wrzucaniem do różnych tablic. Jak zoptymalizować liczby pierwsze.
Sub kolorowe_pierwsze()
Dim zawartosc As Variant, t(100 * 25) As Integer
Dim indeksy(100 * 25, 2) As Byte
k = 0
For j = 1 To 25
For i = 1 To 100
zawartosc = Cells(i, j).Value
Select Case zawartosc
Case zawartosc = 2
If Not IsEmpty(zawartosc) Then 'sprawdzenie czy puste
If IsNumeric(zawartosc) Then ' sprawdzenie czy jest to liczba
k = k + 1
t(k) = zawartosc
indeksy(k, 1) = i
indeksy(k, 2) = j
Cells(i, j).Interior.Color = RGB(255, 0, 0)
End If
End If
Case zawartosc = 3
If Not IsEmpty(zawartosc) Then 'sprawdzenie czy puste
If IsNumeric(zawartosc) Then ' sprawdzenie czy jest to liczba
k = k + 1
t(k) = zawartosc
indeksy(k, 1) = i
indeksy(k, 2) = j
Cells(i, j).Interior.Color = RGB(255, 0, 0)
End If
End If
Case zawartosc = 5
If Not IsEmpty(zawartosc) Then 'sprawdzenie czy puste
If IsNumeric(zawartosc) Then ' sprawdzenie czy jest to liczba
k = k + 1
t(k) = zawartosc
indeksy(k, 1) = i
indeksy(k, 2) = j
Cells(i, j).Interior.Color = RGB(255, 0, 0)
End If
End If
Case zawartosc = 7
Case Else
If Not IsEmpty(zawartosc) Then 'sprawdzenie czy puste
If IsNumeric(zawartosc) Then ' sprawdzenie czy jest to liczba
If Not (zawartosc Mod 2) = 0 Then
If Not (zawartosc Mod 3) = 0 Then
If Not (zawartosc Mod 4) = 0 Then
If Not (zawartosc Mod 5) = 0 Then
k = k + 1
t(k) = zawartosc
indeksy(k, 1) = i
indeksy(k, 2) = j
Cells(i, j).Interior.Color = RGB(255, 0, 0)
End If
End If
End If
End If
End If
End If
End Select
Next i
Next j
End Sub
Sprawdza czy komórka jest pusta i czy zawartość jest liczbą. Funkcja nie koloruje komórek z 2,5,7. Mam świadomość, że jest to droga do Warszawy przez Londyn.
Sub tablice()
'Dim tabl(1 To 100, 1 To 25) As Variant
Dim argument()
For i = 1 To 100
For j = 1 To 25
' tabl(i, j) = Worksheets("Arkusz1").Cells(i, j).Value
zawartosc = Cells(i, j).Value
If Not IsEmpty(Cells(i, j).Value) Then
If Not IsEmpty(Cells(i, j + 1).Value) Then
ReDim argument(j)
argument(j) = (Cells(i, j).Value)
End If
End If
Next j
Next i
'MsgBox tabl(1, 1)
'MsgBox tabl(1, 2)
'MsgBox tabl(12, 7)
'MsgBox tabl(13, 23)
End Sub
Próbowałem sprawdzać kolejną komórkę czy jest pusta i dodawać do tablicy. Niestety jest pusta. Dalej nie wiem jak zrobić, aby przy sprawdzaniu kolejnego wiersza wrzucało do nowej tablicy. Może to trzeba innym sposobem?
Jestem początkujący i średnio mi to idzie.