Что значит в экселе двоеточие

Обновлено: 07.07.2024

Что именно двоеточие ":" (разделитель операторов) делает в VBA?

":" в значении "новая строка" не может объяснить это поведение:

Этот трехстрочный код успешно компилируется:


Эта двухстрочная версия завершается с ошибкой «Ошибка компиляции: иначе без If»:


Эта 1-строчная версия завершается с ошибкой «Ошибка компиляции: End If без блока If»:


Итак, как точно описать значение «:» в соответствии с этим поведением?

3 ответа

Двоеточие позволяет записывать оператор в одну строку и обозначает конец допустимого оператора VBA.

Однако некоторые двоеточия могут быть опущены (или добавлены автоматически редактором VBA) в зависимости от появления каких-либо операторов else . End if также может быть опущен в некоторых случаях

Например, ваш однострочный оператор будет выполняться, если он был написан как:

If 1 = 2 Then MsgBox "impossible" Else: MsgBox "OK"

Обратите внимание на отсутствие End if . Ваш двухстрочный оператор синтаксически неверен и выдаст ошибку.

Двоеточие : позволяет поместить 2 или более инструкций в одну строку.
Then имеет 2 синтаксиса:

По вашим наблюдениям, Then должна быть последней инструкцией в строке, чтобы попасть в случай b.

Я считаю : более полезным в 2 ситуациях:

С Dim (если вам не требуется, чтобы все Dim были в начале процедуры)

Двоеточие не заменяет новую строку.
Это позволяет вам поместить несколько операторов в одну строку, но это все еще считается одной строкой для грамматики.

документация специально показывает использование двоеточия с If :

В однострочной форме возможно выполнение нескольких операторов в результате решения If. Then . Все операторы должны быть в одной строке и разделены двоеточиями, как в следующем утверждении:

В отличие от многострочной формы

Вы помещаете несколько операторов в одну строку, но по-прежнему используете однострочную форму оператора If без End If .

В EXCEL при вводе данных в формате времени есть возможность избежать ввода двоеточия.

Пример . Пусть нам требуется вводить часы и минуты каких-нибудь событий.


Необходимо учитывать, что ячейка не содержит значение в формате времени, она содержит число 230. В этом можно убедиться, посмотрев на Строку формул – в ней отображается 230, а не 2:30. Изменив формат ячейки на пользовательский , мы изменили лишь формат отображения значения.

Если со значениями времени не нужно выполнять никаких действий, то задачу можно считать выполненной. Но если значения нужны для расчетов, то нужно разобраться, что делает EXCEL при вводе в ячейку значения с двоеточием, т.е. после нажатия клавиши ENTER .

EXCEL интерпретирует введенное значение 2:30 (т.е. «2 двоеточие 30»), как время, т.е. устанавливает Формат ячейки Время, затем вводит в ячейку число 0,104167 (но в Строке Формул отображается 2:30:00. Если изменить формат ячейки на Число , то увидим 0,104167). Откуда взялось это число 0,104167? В форматах Время и Дата принято, что одним суткам соответствует число единица. Соответственно, один час в формате даты это 1/24 (т.к. в сутках 24 часа), а одна минута – 1/(24*60)=1/1440. Число 0,104167 из 2:30 получается так: 2 часа/24 + 30 минут/1440.

Для тех, кто не хочет возиться с двоеточием и кому нужны значения в формате Времени - алгоритм такой (см. файл примера ):

  • в ячейку А1 вводим дату без двоеточия, в виде числа, например 230;
  • устанавливаем пользовательский формат времени 00":"00 (если необходимо);
  • в любой другой ячейке, например В1 , пишем формулу =(ЦЕЛОЕ(A1/100)/24)+ ((A1-(ЦЕЛОЕ(A1/100)*100))/1440) (получаем 0,104167);
  • меняем формат ячейки В1 на Время и получаем полноценное время – 2:30. С этим значением можно производить вычисления в формате ВРЕМЯ.

В файле примера также показано как ускорить ввод в формате чч:мм:сс (обязательно должны быть указаны часы, т.е. число должно быть >10000, т.е. 1:00:00).

Там же, "по просьбе телезрителей", показано как преобразовать любое число от 1 до 235959 в формат чч:мм:сс. Причем можно указывать только секунды, минуты и секунды, ну и конечно часы, минуты и секунды.

Подскажите, пожалуйста, как решить проблему.

Есть сайт. Есть таблица Ексель.
С сайта простым методом "ДАННЫЕ -> Из Интернета" импортируются данные в таблицу.
И все бы хорошо, но.
На сайте

столбец Skóre показывает забитые и пропущенные шайбы через двоеточие - 44:14 или, к примеру, 20:37.
Ексель подобного рода данные преобразует либо во время, либо еще и дату добавляет.
Из 20:37 получается 20:37:00, а из 44:14 получается в строке формул 01.01.1900 20:14:00.

Как Екселю пояснить и договориться с ним, что 44:14 пусть остается 44:14 и не надо ничего с этими цифрами делать? (В таблице это диапазон H383:H429)

Подскажите, пожалуйста, как решить проблему.

Есть сайт. Есть таблица Ексель.
С сайта простым методом "ДАННЫЕ -> Из Интернета" импортируются данные в таблицу.
И все бы хорошо, но.
На сайте

столбец Skóre показывает забитые и пропущенные шайбы через двоеточие - 44:14 или, к примеру, 20:37.
Ексель подобного рода данные преобразует либо во время, либо еще и дату добавляет.
Из 20:37 получается 20:37:00, а из 44:14 получается в строке формул 01.01.1900 20:14:00.

Как Екселю пояснить и договориться с ним, что 44:14 пусть остается 44:14 и не надо ничего с этими цифрами делать? (В таблице это диапазон H383:H429) AwdBor

Есть сайт. Есть таблица Ексель.
С сайта простым методом "ДАННЫЕ -> Из Интернета" импортируются данные в таблицу.
И все бы хорошо, но.
На сайте

столбец Skóre показывает забитые и пропущенные шайбы через двоеточие - 44:14 или, к примеру, 20:37.
Ексель подобного рода данные преобразует либо во время, либо еще и дату добавляет.
Из 20:37 получается 20:37:00, а из 44:14 получается в строке формул 01.01.1900 20:14:00.

Как Екселю пояснить и договориться с ним, что 44:14 пусть остается 44:14 и не надо ничего с этими цифрами делать? (В таблице это диапазон H383:H429) Автор - AwdBor
Дата добавления - 17.10.2014 в 14:47

Сделайте в этом столбце формат ячейки время 13:30 после импорта или установите текстовый формат до импорта Сделайте в этом столбце формат ячейки время 13:30 после импорта или установите текстовый формат до импорта Russel

Russel, лучше бы, конечно, текстовый формат. Потом проще разбить эти две цифры на две разные ячейки.
Но замена формата ни до, ни после импорта ничего не дает.

Потому что цифры могут быть и трехзначные (это же хоккей все-таки. за сезон по две сотни шайб забрасывается, а то и больше). А, к примеру, 157:130 - уже никак не формат времени. И опять Ексель добавляет в сроку формул дату перед временем.

А текстовый формат все равно исчезает после обновления данных. Может в параметрах запроса как-то можно отрегулировать что бы заданный формат ячеек таким же и оставался после импорта?

Russel, лучше бы, конечно, текстовый формат. Потом проще разбить эти две цифры на две разные ячейки.
Но замена формата ни до, ни после импорта ничего не дает.

Потому что цифры могут быть и трехзначные (это же хоккей все-таки. за сезон по две сотни шайб забрасывается, а то и больше). А, к примеру, 157:130 - уже никак не формат времени. И опять Ексель добавляет в сроку формул дату перед временем.

А текстовый формат все равно исчезает после обновления данных. Может в параметрах запроса как-то можно отрегулировать что бы заданный формат ячеек таким же и оставался после импорта? AwdBor

Потому что цифры могут быть и трехзначные (это же хоккей все-таки. за сезон по две сотни шайб забрасывается, а то и больше). А, к примеру, 157:130 - уже никак не формат времени. И опять Ексель добавляет в сроку формул дату перед временем.

А текстовый формат все равно исчезает после обновления данных. Может в параметрах запроса как-то можно отрегулировать что бы заданный формат ячеек таким же и оставался после импорта? Автор - AwdBor
Дата добавления - 17.10.2014 в 16:56

Когда вы вставляете формат времени в ячейки рабочего листа, вас когда-нибудь раздражало вводить двоеточия каждый раз? В этой статье я расскажу о том, как вставлять двоеточие при вводе чисел, чтобы автоматически использовать их в качестве формата времени в Excel.

Вставьте двоеточие между числами, чтобы сделать их форматом времени с формулами

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

Если числа всегда 3 или 4 цифры, вы можете использовать эту формулу:

=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0) , затем перетащите дескриптор заполнения вниз к ячейкам, которые вы хотите содержать эту формулу, и вы получите следующий результат, который вам нужен:

doc вставить двоеточие в числа 1

Если числа состоят из 5 или 6 цифр, примените эту формулу:

=(INT(A1/10000)&":"&INT(MOD(A1,10000)/100)&":"&MOD(A1,100))+0 , и перетащите дескриптор заполнения вниз к ячейкам, которые вы хотите содержать эту формулу, и вы получите числовую последовательность, как показано на следующем снимке экрана:

doc вставить двоеточие в числа 2

Затем вы должны отформатировать числа как формат времени, нажав Время из Общие раскрывающийся список под Главная вкладку, см. снимок экрана:

doc вставить двоеточие в числа 3

Автоматически преобразовывать числа в формат времени при вводе их с кодом VBA

Следующий код VBA также может помочь вам автоматически преобразовать числа в формат времени при их вводе, пожалуйста, сделайте следующее:

1. Перейдите к листу, на котором вы хотите автоматически вставлять двоеточия в числа.

2. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню во всплывающем Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустое Модуль окно, см. снимок экрана:

Код VBA: автоматическое преобразование чисел в формат времени:

doc вставить двоеточие в числа 4

Примечание: В приведенном выше коде A1: A20 - это ячейки, которые вы хотите вставить позже, и вы можете изменить ссылку на ячейку по своему усмотрению.

3. И теперь, когда вы вводите числа, такие как 102319, в диапазоне ячеек A1: A20, а затем нажимаете Enter , число будет автоматически отформатировано в формате времени 10:23:19 по мере необходимости.

Читайте также: