我有2个值,其中:A2
是纬度,而B2
是经度。两者都在0.25
步骤上更改。
我想使用这些值通过循环自动填充表格。
这个想法是,对于每个单个值(例如49
),我都需要另外几个值(例如-2
,-1.75
,-1.5
,{{1} }等),请按照所附图片在同一行中设置。
首先,此循环(指的是纬度值):
-1.25
,这将在2列中自动填充(第1个纬度值和第2个输出值)。 其次,我试图修改此循环以进行垂直自动填充,这使我可以在行中设置值(第一行为经度值,第二行为输出值)。 下一步应该只包含与相关lon lat值相对应的输出值。
循环看起来像这样:
Sub calc2()
Dim i As Single
With Worksheets("9")
.UsedRange.clear
.Range("a1").Value = "Input"
.Range("f1").Value = "Output"
For i = 40 To 55 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
Next i
End With
End Sub
但是它不起作用。我必须混合一些东西。基本上,我的输出值位于不同的工作表(4.MINUTES)中,我想将其粘贴到一个位置以获取不同的坐标,最终制作一张表(请参阅附件中的示例)。 任何想法如何做到这一点? 我将不胜感激。预先谢谢你。
答案 0 :(得分:1)
@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
结果就像图片一样
答案 1 :(得分:0)
我正在尝试您的代码,但是问题是,没有显示任何错误,但是代码不起作用。
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
您能建议With值吗?我的LON和LAT值在单独的纸上。