Проверьте, существует ли пользовательский ввод в заполненных ячейках в строке 1 - PullRequest
1 голос
/ 23 мая 2019

В настоящее время я пишу макрос для вставки нового столбца во все рабочие листы. Это уже работает, это просто точная настройка. Я хотел бы, чтобы мой макрос проверял, существует ли ранее пользовательский ввод (для имени нового столбца) в другом столбце. Если он существует, я бы хотел, чтобы всплыло окно, в котором пользователь может выбрать создание нового столбца в любом случае или ввести другое имя (возврат к InputBox).

Я совершенно уверен, что должен использовать цикл и ветвь If, но я не совсем уверен, как именно.

Line1:

Do While ende = False
    Name = InputBox("Name der neuen Spalte")
    Anzahl_Col = Cells.CurrentRegion.Columns.Count

    For i = 1 To Anzahl_Col
        If InStr(1, ActiveSheet.Range(i, 1).Value, Name) > 0 Then
            Retry = MsgBox("Diese Spalte existiert bereits, trotzdem fortfahren?", vbOKCancel)
            If Retry = vbOK Then
                Exit For
            ElseIf Retry = vbCancel Then GoTo Line1

            End If
        Else
            Exit For
        End If
    Next i

        If StrPtr(Name) = 0 Then
            MsgBox ("Abgebrochen!")
            Exit Sub

        ElseIf Name = "" Then
            MsgBox ("Bitte etwas eingeben")

        Else
            Exit Do

        End If
Loop

Ожидаемые результаты

Пользователь выбирает имя, и если оно уже существует, его спрашивают, хочет ли он продолжить или ввести другое имя.

Фактический результат

runtime error 1004 application or object-defined error

1 Ответ

0 голосов
/ 23 мая 2019

Добро пожаловать в SO.

Похоже, вы почти поняли ... проблема в том, как вы используете объект Range:

If InStr(1, ActiveSheet.Range(i, 1).Value, Name) > 0 Then

Подробнее о Range здесь при необходимости.Пожалуйста, смотрите ниже, как вы можете использовать Cells для достижения того же:

If InStr(1, ActiveSheet.Cells(1, i).Value, Name) > 0 Then

PS: всегда хорошо, чтобы выделить строку, где вы получаете ошибку тоже, но я предполагаю, что это происходит неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...