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

Я думал об использовании VBA (что-то вроде того, если есть изменение ячейки с некоторой строкой цифр в этом столбце, он изменит его на реальный EAN, иначе он сотрет его), но если уже есть что-то, что может сделать это в Excel почему бы не использовать его.

Вот пример по запросу.

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

2 ответа2

2

Метод fixer1234 - это то, что я искал, я создал собственный формат, используя форматирование ячеек.

В моем примере префикс был 12345678, и я искал 5 цифр, поэтому формат был:

"12345678" 00000

"12345678" - это префикс между кавычками, чтобы рассматривать его как строку.

00000 - это пятизначный код, я использовал ##### в начале, но когда слева от кода было несколько нулей, они не отображались.

Поэтому, если я хочу отобразить 1234567800045 в ячейке, я просто помещаю 45.


Если вы хотите использовать полное значение, а не то, что отображается по какой-то причине, посмотрите ответ jc bermu с помощью VBA.

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

0

Этот макрос является хорошей отправной точкой:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    eancolumn = 1
    Prefix = "1234"
    therow = Target.Row
    thecolumn = Target.Column
    If eancolumn = thecolumn Then
        If Target.Value <> "" Then
            If IsNumeric(Target.Value) Then
                Target = Prefix & Target.Value
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

Откройте Macros с помощью клавиш ALT+F11, дважды щелкните по Sheet1 с левой стороны и вставьте код с правой стороны. Этот код затем выполняется на Sheet 1 каждый раз, когда происходит изменение. Переменная eancolumn определяет, к какому столбцу будет добавлен префикс.

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