Excel 通过递增值将列设置为等于范围
我试图将我的列“C”设置为一个范围。我希望范围为0到MaxValue,增量为0.1。所以它可能是0,0.1,0.2,0.3…最大值。当我使用此代码时,它只为整个列提供一个值。这件事怎么办?提前谢谢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更改为您想要开始的任何行来更改范
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