Równa czcionka Temat: Re: Excel for next
Autor: athor Data: 09 Sie 2010
Odwołania: 1
W dniu 2010-08-08 17:31, Ryszard pisze:
> Witam
>
> Próbuję od dłuższego czasu poradzić sobie z takim moim problemem i
> niestety utknąłem.
>
> Muszę wykonać ok. 100 obliczeń i chciałbym żeby dane pobierane były z
> określonych komórek i każdy wynik wpisany został do oddzielnej
> określonej komórki. Wszystko jest ok dla pojedynczych komórek, ale w
> takim przypadku musze powtórzyć makro 100 razy. Napisałem takie małe
> makro (na miarę moich możliwości) i niestety we wszystkie wskazane
> komórki wpisywana jest wartość obliczona dla ostatnich wskazanych
> komórek. Dlatego zwracam się o pomoc jak ten problem rozwiązać stosując
> pętlę.
>
> Moje makro:
>
> Sub pętla()
>
> For C = 1 To 100 Step 2
> For X = 1 To 100 Step 2
> For A = 1 To 200 Step 4
>
> If Cells(C, 3).Value = 4 Then
> Cells(A, 36).Value = ""
> If Cells(X, 11).Value = "" Then
> Cells(A, 36).Value = ""
> Else
> Cells(A, 36).Value = 1 / (2 * Cells(C, 11) * Cells(C, 12))
> End If
> End If
>
> Next A
> Next X
> Next C
>
> End Sub
>
>
> Dziękuję za pomoc

Hej

Nie wiem dokładnie o jaką zależność miejsc komórek w arkuszu ci chodzi
ale może takie coś pomoże.

Kolumny A i B posiadają przykładowe dane, natomiast w kolumnie C wynik
Użyłeś pętli for więc i ja ją użyje, 100 wierszy, powiedzmy dodawanie


Sub petla()
Dim x As Integer
Dim a As Integer
Dim b As Integer
Dim suma As Integer


For x = 1 To 23 Step 1

With Worksheets("Arkusz1").Range("A" & x)

a = CInt(.Value)
b = CInt(.Offset(0, 1).Value)
suma = a + b

.Offset(0, 2).Value = suma

End With
Next x



End Sub



Pisane od ręki ale na pierwszy rzut oka jest ok. Stosuje w tym przypadku
metodę offset, dzięki niej pętla for bazuje tylko na jednej kolumnie i
zachowuje się identycznie dla pozostałych, pozostaje kwestia
odniesienia, offset(x,y)
x w pionie, dodatnia wartość poniżej, ujemna wyżej
y w poziomie, dodatnia w prawo, ujemna w lewo.

Mam nadzieje że pomogłem