我想用从 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