带表格自动填充的VBA Excel循环
我有两个值,其中:带表格自动填充的VBA Excel循环,excel,vba,Excel,Vba,我有两个值,其中:A2是纬度,B2是经度。在0.25步骤中进行两次更改 我想使用这些值使用循环自动填充表格 其想法是,对于每一个值(例如49),我需要在同一行中设置另外几个值(例如-2,-1.75,-1.5,-1.25,等等),如所附图片中所示 首先,该回路(指一个纬度值): ,它在第2列中自动填充(纬度值在第1列,输出值在第2列)。 第二,我试图修改这个循环以实现垂直自动填充,它允许我设置行中的值(第一行是经度值,第二行是输出值)。 接下来的步骤应仅包含对应于相关lon、lat值的输出值 循环
A2
是纬度,B2
是经度。在0.25
步骤中进行两次更改
我想使用这些值使用循环自动填充表格
其想法是,对于每一个值(例如49
),我需要在同一行中设置另外几个值(例如-2
,-1.75
,-1.5
,-1.25
,等等),如所附图片中所示
首先,该回路(指一个纬度值):
,它在第2列中自动填充(纬度值在第1列,输出值在第2列)。
第二,我试图修改这个循环以实现垂直自动填充,它允许我设置行中的值(第一行是经度值,第二行是输出值)。
接下来的步骤应仅包含对应于相关lon、lat值的输出值
循环如下所示:
Sub calc_full()
Dim i As Single
With Worksheets("9")
.UsedRange.clear
.Range("a1").Value = "Input"
.Range("b1").Value = "Output"
.Range("c1").Value = "Input"
.Range("d1").Value = "Output"
For i = 40 To 45 Step 0.25
For k = -2 To 2 Step 0.25
Worksheets("1_GENERAL").Range("A2").Value = i
With .Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = i
.Offset(1, 1).Value = Worksheets("4.MINUTES").Range("BL371").Value
End With
With .Cells(Cols.Count, 1).End(xlUp)
.Offset(2, 0).Value = k
.Offset(2, 1).Value = Worksheets("4.MINUTES").Range("BL371").Value
End With
Next i
Next k
End With
End Sub
但是它不起作用。我一定是混了什么东西。基本上,我的输出值位于不同的工作表(4.5分钟)中,我希望将其粘贴到不同坐标的一个位置,最终形成一个表格(见附件中的示例)。
有什么办法吗?
我将非常感激。先谢谢你
@Mariusz Krukar导入下图中的值49和25,然后尝试:
Option Explicit
Sub test()
Dim i As Long
Dim LAT As Double
Dim LON As Double
Dim Lastrow As Long
Dim Lastcolumn As Long
Dim Times As Integer
With wsTest
LAT = .Range("A2").Value
LON = .Range("B1").Value
Times = (55 - LAT) / 0.25
For i = 1 To Times
Lastrow = .Range("A" & Rows.Count).End(xlUp).Row
LAT = LAT + 0.25
.Range("A" & Lastrow + 1) = LAT
Next i
Debug.Print LAT
Times = (LON + 7.75) / 0.25
For i = 1 To Times
Lastcolumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
LON = LON - 0.25
.Cells(1, Lastcolumn + 1) = LON
Next i
End With
End Sub
结果如图所示:
我正在尝试您的代码,但问题是,没有显示错误,但代码不起作用
Sub autofill_example()
Dim i As Long
Dim LAT As Double
Dim LON As Double
Dim Lastrow As Long
Dim Lastcolumn As Long
Dim Times As Integer
With Sheets("9")
LAT = Sheets("1_GENERAL").Range("A2").Value
LON = Sheets("1_GENERAL").Range("B2").Value
Times = (55 - LAT) / 0.25
For i = 1 To Times
Lastrow = .Range("A" & Rows.Count).End(xlUp).Row
LAT = LAT + 0.25
.Range("A" & Lastrow + 1) = LAT
Next i
Debug.Print LAT
Times = (LON + 7.75) / 0.25
For i = 1 To Times
Lastcolumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
LON = LON - 0.25
.Cells(1, Lastcolumn + 1) = LON
Next i
End With
End Sub
你能告诉我有价值的东西吗?我的LON和LAT值在单独的表中。使用带阶跃的系列,而不是自动填充。
Sub autofill_example()
Dim i As Long
Dim LAT As Double
Dim LON As Double
Dim Lastrow As Long
Dim Lastcolumn As Long
Dim Times As Integer
With Sheets("9")
LAT = Sheets("1_GENERAL").Range("A2").Value
LON = Sheets("1_GENERAL").Range("B2").Value
Times = (55 - LAT) / 0.25
For i = 1 To Times
Lastrow = .Range("A" & Rows.Count).End(xlUp).Row
LAT = LAT + 0.25
.Range("A" & Lastrow + 1) = LAT
Next i
Debug.Print LAT
Times = (LON + 7.75) / 0.25
For i = 1 To Times
Lastcolumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
LON = LON - 0.25
.Cells(1, Lastcolumn + 1) = LON
Next i
End With
End Sub