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

Kod Visual Basic z visual studio, na kod VBA do excela

0 głosów
122 wizyt
pytanie zadane 6 czerwca 2018 w Visual Basic przez fermix Nowicjusz (200 p.)

Witam, napisałem sobie taki kodzik (kod poniżej) w visual studio w VB. Algorytm ma za zadanie wczytać macierz o m wierszach i n kolumnach, i zwrocic tablice, która zawierać będzie średnie z kolumn na odpowiednich indeksach(np. indeks 0 - średnia z zerowej kolumny macierzy wejściowej)

Chciałbym zastosować ten algorytm w excelu, tak aby mógł wczytać zaznaczone komórki, i zwrócić średnie kolumn takiej zaznaczonej macierzy. Podpowie mi ktoś jak zczytać w VBA wartości z komórek z zeszytu, a następnie zwrócić?

Załączam kod w VB

Module Module1

    Sub Main()
        Dim m, n As Integer
        m = 3
        n = 3
        Dim licznik As Integer = 0
        Dim Tb2 As Double(,) = New Double(m - 1, n - 1) {}
        Tb2(0, 0) = 1
        Tb2(0, 1) = 3
        Tb2(0, 2) = 5
        Tb2(1, 0) = 2
        Tb2(1, 1) = 4
        Tb2(1, 2) = 6
        Tb2(2, 0) = 3
        Tb2(2, 1) = 3
        Tb2(2, 2) = 4
        Dim TSrednia As Double() = New Double(n - 1) {}

        For i As Integer = 0 To m - 1
            licznik = 0
            For j As Integer = 0 To n - 1
                TSrednia(i) = TSrednia(i) + Tb2(i, j)
                licznik += 1

                If j = n - 1 Then
                    TSrednia(i) = TSrednia(i) / licznik
                End If
            Next
        Next

        For i As Integer = 0 To TSrednia.Length - 1
            Console.WriteLine(TSrednia(i))
        Next

        Console.ReadKey()
    End Sub

End Module

 

1 odpowiedź

0 głosów
odpowiedź 6 czerwca 2018 przez jeremus Maniak (59,790 p.)
wybrane 6 czerwca 2018 przez fermix
 
Najlepsza
można to zrobić na wiele sposobów. poniżej masz to zrobione w sposób najbardziej zbliżony do Twojego. Oblicza zarówno średnie kolumn jak i wierszy.
Przy okazji : na podstawie mego kodu zobacz jak możesz uprościć swój.

  Dim m, n
    m = Selection.Rows.count
    n = Selection.Columns.count
    
    For i = 1 To m
       sr = 0
       For j = 1 To n
         sr = sr + Selection.Cells(i, j)
       Next j
       Selection.Cells(i, n + 1) = sr / n
    Next i
    
    
    For i = 1 To n
       sr = 0
       For j = 1 To m
         sr = sr + Selection.Cells(j, i)
       Next j
       Selection.Cells(m + 1, i) = sr / m
    Next i

 

komentarz 6 czerwca 2018 przez fermix Nowicjusz (200 p.)

Dziękuję bardzo za pomoc oraz cenne uwagi co do uproszczenia kodu! smiley

Podobne pytania

0 głosów
1 odpowiedź 82 wizyt
pytanie zadane 28 czerwca 2018 w Systemy operacyjne, programy przez Radek Begej Użytkownik (570 p.)
0 głosów
0 odpowiedzi 66 wizyt
pytanie zadane 4 listopada 2018 w Visual Basic przez Maciek Nayko Wiśniew Początkujący (350 p.)
0 głosów
1 odpowiedź 73 wizyt
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

66,384 zapytań

113,133 odpowiedzi

239,497 komentarzy

46,640 pasjonatów

Przeglądających: 166
Pasjonatów: 0 Gości: 166

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...