Excel - hurtowa zmiana wartości liczb


(Lucyfer) #1

W kilkudziesięciu komórkach mam liczby. Jak za jednym zamachem każdą z tych liczb powiększyć o 12%, tak, aby powiększona liczba wyświetlała się w tej samej komórce?


(Utrivv) #2

Napisz makro

dim x as string

dim j As string

dim i as string

' jeżeli dane są w innym wierszu wpisz inną liczbe początkową

i = 1

j = 1

' pamiętaj że zakładam że dane zaczynają się w pierwszej kolumnie i wierszu!

While Cells(i, j).Value <> ""

x = cells(i, j).Value

x = x * 1,12

Cells (i, j) = x

i = i + 1

Wend


(Lucyfer) #3

Wyświetla błąd

i = 1

Podświetla 1

Compile errror

Invalid outside procedure


(Utrivv) #4

Function zmien()

dim x as string

dim j As string

dim i as string

' jeżeli dane są w innym wierszu wpisz inną liczbe początkową

i = 1

' pamiętaj że zakładam że dane zaczynają się w pierwszej kolumnie i wierszu!

While Cells(i, 1).Value <> ""

x = cells(i, 1).Value

x = x * 1.12

Cells (i, 1) = x

i = i + 1

Wend

End Function

teraz zadziała


(Lucyfer) #5

Działa. Wielkie dzięki :smiley:

PS. Co oznacza Wend?


(Utrivv) #6

koniec pętli while.

Jeszcze jedno - x i z chyba lepiej by były double (dim x as double)


(Lucyfer) #7

W tym makro nie ma z


(Utrivv) #8

:slight_smile: masz rację - dodałem z w czasie testów :slight_smile:


(Lucyfer) #9

To które mam ustawić na double?


(Utrivv) #10

W takim razie tylko x :slight_smile:

Ja po prostu zmieniłem linijkę

x = x * 1.12

na

z = x * 1.12

i potem cells(i, 1) = z

Ale to nie ma żadnego znaczenia, pierwsza i tak działa.