![如何用变量数据填充 Excel 中的列?](https://linux22.com/image/1554634/%E5%A6%82%E4%BD%95%E7%94%A8%E5%8F%98%E9%87%8F%E6%95%B0%E6%8D%AE%E5%A1%AB%E5%85%85%20Excel%20%E4%B8%AD%E7%9A%84%E5%88%97%EF%BC%9F.png)
我想用从 600001 到 800000 的数字填充第一个 A1 列。达到 2000 后,应该有 10 个单元格带有“######”或零或类似的内容。
例子:
601999
602000
"######" (ten times)
602001
.
.
604000
"######" (ten times)
and so on...
每2000年之后应该都是这样
您知道这个问题的解决办法吗?
先感谢您!
答案1
将以下内容复制到 1-200990 行(如果希望######
行位于底部,则复制到 1-201000 行):
=IF(MOD(ROW()-1,2010)>=2000,"######",INT((ROW()-1)/2010)*2000+MOD(ROW(),2010)+600000)
它的工作原理是识别每 2010 行的最后 10 个单元格并在其中写入填充文本,然后从其他单元格的数字计算中消除多余的 10 行。
因为这会生成文本和数字的混合,默认情况下会具有相反的对齐方式,所以您可能需要将整个列左对齐或右对齐;或者您可以使用以下方法将数字转换为文本:
=IF(MOD(ROW()-1,2010)>=2000,"######",TEXT(INT((ROW()-1)/2010)*2000+MOD(ROW(),2010)+600000,"######"))
如果有列标题,则需要在计算中添加偏移量。
答案2
类似这样的方法可能会有效:
myRow = 1
r = 600001
For i = 1 to 100
for j = 1 to 2000
Range("A", myRow).value = r
r = r+1
myRow = myRow + 1
next j
for k = 1 to 10
Range("A", myRow).value = "######"
myRow = myRow + 1
next k
Next i