Как автоматически изменить длину столбца с числами 0-n , где n = a number in a certain field?

Я думаю о чем-то вроде этого:

РЕДАКТИРОВАТЬ: Кажется, я плохо объяснил, что именно я хотел бы. Вот вторая попытка, я ищу решение, которое позволит мне ввести одно число в поле, которое создаст столбец чисел от 0 до числа ввода. Вот как это будет выглядеть с разными номерами. Примечание: мне нужно только одно поле для ввода чисел, которое затем создаст столбец чисел, как показано на рисунке.

2 ответа2

1

Вот некоторый код для начала работы (в зависимости от расположения ячеек на вашем изображении).

Sub SeriesFill()
    Dim RowCount As Long
    Range("C4:C1000").Cells.Clear
    RowCount = Range("C2").Cells.Value + 4
    Range("C4").Cells.Value = "0"
    Range("C4").AutoFill Destination:=Range("C4:C" & RowCount), Type:=xlFillSeries
End Sub

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

0

Это делает то, что вы хотите.

В вашем примере у вас есть 4 столбца (C, D, E и F). Ну, вы можете добавить еще один (G, H, I, J и т.д.), И приведенный ниже код будет по-прежнему выполняться для всех этих столбцов.

Вам нужно будет сказать ему несколько вещей, таких как rowRequired (в данном случае это строка 2, это строка, в которой вы определяете требования (например, сколько значений вы хотите)).

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

Вы должны указать начальную колонку, в данном случае C

Sub DoTheThing()

@AHOY ME HEARTIES, SEE BELOW FOR WHAT YE CAN EDIT

Dim rowsRequired As Integer
rowsRequired = 2  ' THIS IS THE ROW NUMBER WHERE YOU ENTER THE NUMBER YOU WANT TO SEE

Dim startingRow As Integer
startingRow = 4 ' THIS IS THE ROW NUMBER YOU WANT TO START SHOWING RESULTS

Dim startingColumn As String
startingColumn = "C" ' THIS IS THE FIRST COLUMN

'I SUGGEST YOU LEAVE THE BELOW ALONE LESS YE WALK THE PLANK

Dim startingColumnInt As Integer
startingColumnInt = Asc(startingColumn)

Do While (Range(Chr(startingColumnInt) & rowsRequired).Value <> "")

    Dim valToUse As String
    valToUse = Range(Chr(startingColumnInt) & rowsRequired).Value

    Dim row As Integer
    row = startingRow

    Dim i As Integer
    For i = 0 To valToUse

        Range(Chr(startingColumnInt) & row).Value = i
        row = row + 1
    Next i

    startingColumnInt = startingColumnInt + 1
Loop

End Sub

До

После выполнения VBa

Как добавить VBA в MS Office?

Помните, что в VBa нет кнопки отмены (обычно), поэтому сначала убедитесь, что вы сохранили или создали резервную копию!

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