Программирование в Excel для автоматического заполнения частичного ввода (числа) - PullRequest
3 голосов
/ 12 января 2011

Мы управляем нашими запасами в Excel. Я знаю, что это немного старомодно, но мы развиваем деловую фирму, и у нас все наши деньги заблокированы в бизнесе, и у нас нет денег для инвестиций в ИТ.

Итак, я хотел знать, могу ли я программировать так, чтобы Excel автоматически заполнял номера продуктов?

Это пример одной категории продуктов
Example

Все наши коды дизайна состоят из 6 цифр. Что я действительно хочу, так это то, что когда добавляется только частичное число и нажимается ввод, оно автоматически завершает оставшиеся цифры, взяв вышеуказанные числа.

Так, например, в этом случае я ожидаю, что если я наберу 5, нажмите Enter, то автоматически произойдет 790705 на основе указанного числа.

Ответы [ 2 ]

2 голосов
/ 12 января 2011

Добавьте следующий код VBA в раздел кода вашей рабочей таблицы:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim oldText  As String, aboveText As String, newText As String
    If Target.Column = 2 And Target.Row >= 3 And Target.Text <> "" Then
        oldText = Target.Text
        aboveText = Target.Cells(0, 1).Text
        If Len(aboveText) = 6 And Len(oldText) < 6 Then
            newText = Left(aboveText, 6 - Len(oldText)) & oldText
            Application.EnableEvents = False
                Target.Value = newText
            Application.EnableEvents = True
        End If
    End If
End Sub

(измените номер столбца и минимальный номер строки выше в соответствии с фактическими номерами столбцов / строк в вашей рабочей таблице).

0 голосов
/ 12 января 2011
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   If (Target.Column = 2 And Target.Row > 2 And Target.Value < 10) Then
       Target = Target.Offset(rowOffset:=-1) + 1
   End If
End Sub

Если вы введете одну цифру в новую строку, она преобразуется в предыдущую строку + 1.

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