Galera! blz?
Sou novo no VBA, preciso de um Help!!
Não estou conseguindo usar variáveis como parâmetros de funções, como faço isso?
Por exemplo:
ActiveCell.FormulaR1C1 = "=GetKM(variavel,-32,RC[-5],RC[-4])"
onde tem variável, não consigo coloca-la, da erro!!
tentei colocar cells(l,c), tbm não funciona!
por ex:
ActiveCell.FormulaR1C1 = "=GetKM(cells(l,c),-32,RC[-5],RC[-4])"
Abaixo está o código
'calcula as distancias de todos
Sub calcula_distancia_todos()
Dim lin1, lin2 As Integer
' quantidade de linhas da mesma equipe
lin1 = 2 'primeira ocorrencia
lin2 = 2 ' ultima ocorrencia
latit = 0
longit = 0
Do While Cells(lin1, 47).Value = Cells(lin2, 47).Value
latit = Cells(lin1, 64).Value
longit = Cells(lin1, 65).Value
'qtdLinhas = qtdLinhas + 1
Cells(lin2 + 1, 69).Select
ActiveCell.FormulaR1C1 = "=GetKM(latit,longit,RC[-5],RC[-4])"
lin2 = lin2 + 1
Loop
' lin1 = lin2
End Sub
'Distancia Linear entre dois pontos
Function GetKM(lat1Degrees As Double, lon1Degrees As Double, lat2Degrees As Double, lon2Degrees As Double)
Dim earthSphereRadiusKilometers As Double
Dim kilometerConversionToMilesFactor As Double
Dim lat1Radians As Double
Dim lon1Radians As Double
Dim lat2Radians As Double
Dim lon2Radians As Double
Dim AsinBase As Double
Dim DerivedAsin As Double
'Mean radius of the earth (replace with 3443.89849 to get nautical miles)
earthSphereRadiusKilometers = 6371
'Convert kilometers into miles
kilometerConversionToMilesFactor = 0.621371
'Convert each decimal degree to radians
lat1Radians = (lat1Degrees / 180) * 3.14159265359
lon1Radians = (lon1Degrees / 180) * 3.14159265359
lat2Radians = (lat2Degrees / 180) * 3.14159265359
lon2Radians = (lon2Degrees / 180) * 3.14159265359
AsinBase = Sin(Sqr(Sin((lat1Radians - lat2Radians) / 2) ^ 2 + Cos(lat1Radians) * Cos(lat2Radians) * Sin((lon1Radians - lon2Radians) / 2) ^ 2))
DerivedAsin = (AsinBase / Sqr(-AsinBase * AsinBase + 1))
'Get distance from [lat1,lon1] to [lat2,lon2]
GetKM = Round(2 * DerivedAsin * earthSphereRadiusKilometers, 2)
'Miles: = Round(2 * DerivedAsin * (earthSphereRadiusKilometers * kilometerConversionToMilesFactor), 2)
End Function
O problema está nas variáveis latit e longit, tentei de varias formas, não consegui!
Alguem pode me ajudar! pfv!!
Postado : 28/11/2016 2:17 pm