带表格自动填充的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