#programowanie Mirki piszę pewien skrypt liczący w VBA do excela. Nie znam się kompletnie na programowaniu, działam tylko w oparciu o chatgpt i o to co wyczytam w necie. Mam taki kod, który liczy współrzędne punktu w przestrzeni na przedłużeniu linii. Punkty z przyrostkiem D i G to punkty opisujące linię, hi to odległość do punktu nieznanego. Chciałbym aby skrypt wykonywał obliczenia do końca wczytanego zakresu danych (czyli do końca danych w kolumnach MNO). Czy może mi ktoś pomóc to dopisać, chatgpt nie czai o co mi chodzi.
Sub calculateFormula() Dim M4 As Double Dim M3 As Double Dim P3 As Double Dim N4 As Double Dim N3 As Double Dim O4 As Double Dim O3 As Double
@ziomekz: chodzi Ci, że nie chcesz hardcodować adresów, tylko żeby samo szło w pętli do końca danych? Zamiast Range, może Cells bo tam masz położenie, nie literki, nigdy nie lubiłem Range.
Sub calculateFormula()
Dim M4 As Double
Dim M3 As Double
Dim P3 As Double
Dim N4 As Double
Dim N3 As Double
Dim O4 As Double
Dim O3 As Double
M4 = Range("M4").Value
M3 = Range("M3").Value
P3 = Range("P3").Value
N4 = Range("N4").Value
N3 = Range("N3").Value
O4 = Range("O4").Value
O3 = Range("O3").Value
Range("S3").Value = Range("M3").Value + (Range("P3").Value / (Sqr(((Range("M3").Value - Range("M4").Value) ^ 2) + ((Range("N3").Value - Range("N4").Value) ^ 2) + ((Range("O3").Value - Range("O4").Value) ^ 2))) * (Range("M3").Value - Range("M4").Value))
Columns("S").NumberFormat = "0.000"
Range("T3").Value = Range("N3").Value + (Range("P3").Value / (Sqr(((Range("M3").Value - Range("M4").Value) ^ 2) + ((Range("N3").Value - Range("N4").Value) ^ 2) + ((Range("O3").Value - Range("O4").Value) ^ 2))) * (Range("N3").Value - Range("N4").Value))
Columns("T").NumberFormat = "0.000"
https://www.wallstreetmojo.com/vba-last-row/
Następnie znajac ostatni wiersz mozesz uzyc petli do przejscia przez kazdy z wierszy i wykonac kalkulacje
For x = 1 To *twój ostatni wiersz*
Range("S" + x).Value = Range("M" + x).Value + (Range("P" + x).Value / (Sqr(((Range("M" + x).Value -
Range("M" + x + 1).Value) ^ 2) + ((Range("N" + x).Value - Range("N" x + 1).Value) ^ 2) + ((Range("O" + x).Value -