Я хотел бы заполнить первый столбец A1 номерами от 600001 до 800000. После того, как он достигнет 2000, должно быть 10 ячеек с "######" или нулем или чем-то в этом роде.

Пример:

601999 
602000
"######" (ten times)
602001
.
.
604000
"######" (ten times)
and so on...

Так должно быть после каждых 2000

Вы знаете решение для этого?

Заранее спасибо!

2 ответа2

1

Скопируйте следующее в строки 1-200990 (или 1-201000, если вы хотите, чтобы строки ###### были внизу):

=IF(MOD(ROW()-1,2010)>=2000,"######",INT((ROW()-1)/2010)*2000+MOD(ROW(),2010)+600000)

Он работает, идентифицируя последние 10 ячеек в каждой строке 2010 года и записывая туда текст дополнения, а затем удаляет лишние 10 строк из вычисления числа в других ячейках.

Поскольку при этом генерируется смесь текста и чисел, которые по умолчанию будут иметь противоположное выравнивание, вы, вероятно, захотите выровнять столбец по левому или правому краю; или вы можете преобразовать числа в текст с помощью:

=IF(MOD(ROW()-1,2010)>=2000,"######",TEXT(INT((ROW()-1)/2010)*2000+MOD(ROW(),2010)+600000,"######"))

Вам нужно будет добавить смещения в расчеты, если есть заголовки столбцов.

0

Нечто подобное может работать:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .