• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

VBA - pomoc z zadaniem

Object Storage Arubacloud
0 głosów
449 wizyt
pytanie zadane 17 stycznia 2019 w Visual Basic przez Szymonwest Nowicjusz (120 p.)

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.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 267 wizyt
pytanie zadane 27 września 2022 w Visual Basic przez magda_19 Gaduła (3,080 p.)
0 głosów
1 odpowiedź 190 wizyt
pytanie zadane 1 września 2022 w Visual Basic przez morking Nowicjusz (210 p.)
+1 głos
0 odpowiedzi 592 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...