Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 通过递增值将列设置为等于范围_Excel_Vba - Fatal编程技术网

Excel 通过递增值将列设置为等于范围

Excel 通过递增值将列设置为等于范围,excel,vba,Excel,Vba,我试图将我的列“C”设置为一个范围。我希望范围为0到MaxValue,增量为0.1。所以它可能是0,0.1,0.2,0.3…最大值。当我使用此代码时,它只为整个列提供一个值。这件事怎么办?提前谢谢 For p = 1 To MaxValue / 0.1 For g = 0 To MaxValue ws1.Cells(p + 9, "C") = g + 0.1 Next g Next p 您可以通过将intOffsetCounter更改为您想要开始的任何行来更改范

我试图将我的列“C”设置为一个范围。我希望范围为0到MaxValue,增量为0.1。所以它可能是0,0.1,0.2,0.3…最大值。当我使用此代码时,它只为整个列提供一个值。这件事怎么办?提前谢谢

For p = 1 To MaxValue / 0.1
    For g = 0 To MaxValue
        ws1.Cells(p + 9, "C") = g + 0.1
    Next g
Next p

您可以通过将intOffsetCounter更改为您想要开始的任何行来更改范围的起始位置。

这将在不太修改代码的情况下完成

g = 0
For p = 1 To MaxValue / 0.1

    ws1.Cells(p + 9, "C") = g
    g = g + 0.1

Next p

这里有一个简单的While循环来完成您所寻找的任务。只需将MaxValue更改为您想要的值

Sub test()
    Dim MaxValue As Double
    Dim p, counter As Double
    p = 0
    counter = 1
    MaxValue = 10

    While p < MaxValue
        Sheet1.Cells(counter, 3) = p
        p = p + 0.1
        counter = counter + 1
    Wend
End Sub
子测试()
将最大值设置为双精度
暗p,计数器为双精度
p=0
计数器=1
最大值=10
而p
每个循环是否都将g设置为0?@Thatone-Guy-谢谢。我在最后一秒把它放错了位置。修复运行调试器可能会揭示此代码无法工作的原因。
p
的外部循环控制访问哪个单元格。
g
的内部循环控制输出的值。不幸的是,每个
p
的值都将来自
g
循环中的最后一次迭代,因为所有输出都将进入单个单元格。此外,根据
MaxValue
的值,可能会得到可能会导致问题的非整数行号。Scott的答案是解决此循环问题的最干净的解决方案。
Sub test()
    Dim MaxValue As Double
    Dim p, counter As Double
    p = 0
    counter = 1
    MaxValue = 10

    While p < MaxValue
        Sheet1.Cells(counter, 3) = p
        p = p + 0.1
        counter = counter + 1
    Wend
End Sub