Ошибка кода Excel VBA при использовании увеличения номера (перетаскивание CTRL) - PullRequest
1 голос
/ 16 апреля 2011

Я добавил VBA-код к своему Excel, он автоматически записывает оставшуюся часть числа (Например: когда я пишу 2 и нажимаю ввод, он возьмет число над ним и заполнит его. до 990112 [см. изображение])

Это прекрасно работает, когда набирается каждое число, но когда я использую Автоинкремент (CTRL + Drag), выдается ошибка

Это мой код VBA

Private Sub Worksheet_Change(ByVal Target As Range)
Dim oldText  As String, aboveText As String, newText As String
    If Target.Column = 3 Then
        oldText = Target.Text
        aboveText = Target.Cells(0, 1).Text

        If aboveText <> "DESIGN" Or Target.Text <> "" Then

            If Len(aboveText) = 6 And Len(oldText) < 6 And Len(oldText) >= 1 Then
                Application.EnableEvents = False
                newText = Left(aboveText, 6 - Len(oldText)) + oldText
                Target.Value = newText
                Application.EnableEvents = True
            End If

        End If

    End If

End Sub

Excel File

1 Ответ

1 голос
/ 16 апреля 2011

Изменение

If Target.Column = 3 Then

до

If Target.Column = 3 And Target.Cells.Count = 1 Then

Вы пытаетесь получить свойство Text для диапазона из нескольких ячеек (в данном случае "Target" - C6: C7). Новая строка гарантирует, что вы меняете только одну ячейку.

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