Я искал макрос с прошлой недели, но пока безуспешно. Оценил бы усилия, если вы, пожалуйста, вытащите меня из проблемы, с которой я сталкиваюсь, я создал шаблон Excel (использовал его для списка кодирования).

Что я ищу, так это:

В столбце B нам нужно поместить серийные номера (порядковые номера) в активную ячейку на основе значения, указанного в двух ячейках, скажем (A1 = начать серийный номер с: 5) & (A2 = конечный серийный номер: 25) Что мне нужно, это в столбце В тех случаях, когда ячейка активна, а начальный и конечный диапазоны предоставляются мной (пользователем), и я нажимаю кнопку макроса, чтобы сгенерировать серийный номер с указанным начальным и конечным диапазоном от активной ячейки до нисходящей.

Надеюсь, вы поняли мою точку зрения.

1 ответ1

0

Если я понимаю, что вы хотите, этот макрос должен работать для вас. Он проверяет, что:

  • пользователь выбрал ячейку в столбце B для новой серии
  • конечное значение для серии, введенной пользователем, больше начального значения
  • существующие значения в столбце B были очищены перед вставкой новой серии.

Если какое-либо из этих условий не выполняется, макрос предупреждает пользователя и завершает работу, не добавляя новую серию на лист.

Sub NewSeries2()
    Dim seriesRng As Range
    Dim stepSize As Double
    Dim stopValue As Double

    If Intersect(Selection, Range("B:B")) Is Nothing Then
        MsgBox "Please select a cell in column B to start the series."
        Exit Sub
    ElseIf Range("A2").Value <= Range("A1").Value Then
        MsgBox "Ending value of the series cell A2 must be greater then the starting value in cell A1."
        Exit Sub
    ElseIf WorksheetFunction.CountA(Range("B:B")) <> 0 Then
        MsgBox "Please delete the existing values in column B."
        Exit Sub
    Else
        stepSize = 1
        stopValue = Range("A2").Value
        Selection.Value = Range("A1").Value
        Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
            Step:=stepSize, Stop:=stopValue, Trend:=False
    End If
End Sub

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