Содержание
- Функция IsNull
- Синтаксис
- Замечания
- Пример
- См. также
- Поддержка и обратная связь
- Excel vba если строка пустая
- VBA IsEmpty — Как использовать функцию Excel VBA IsEmpty?
- VBA IsEmpty
- Синтаксис IsEmpty в Excel VBA
- Как использовать функцию VBA IsEmpty в Excel?
- VBA IsEmpty — Пример № 1
- VBA IsEmpty — Пример № 2
- VBA IsEmpty — Пример № 3
- То, что нужно запомнить
- Рекомендуемые статьи
- VBA Excel. Проверка переменных и выражений
- Проверка переменных и выражений
- Функция IsArray
- Описание функции
- Пример с IsArray
- Функция IsDate
- Описание функции
- Пример с IsDate
- Функция IsEmpty
- Описание функции
- Пример с IsEmpty
- Функция IsError
- Описание функции
- Пример с IsError
Функция IsNull
Возвращает значение типа Boolean, которое указывает, не содержит ли выражение достоверных данных (Null).
Синтаксис
IsNull(выражение)
Замечания
IsNull возвращает значение True (Истина), если используется expression равное Null; в другом случае IsNull возвращает значение False (Ложь). Если expression состоит из нескольких переменных, значение Null, заданное для одной из них, приводит к возврату значения True для всего выражения.
Значение Null указывает, что Variant не содержит достоверных значений. Null не приравнивается к значению Empty (Пусто), которое указывает, что переменная не была инициализирована. Это также не то же самое, что строка нулевой длины («»), которую иногда называют пустой строкой.
Используйте функцию IsNull, чтобы определить, содержит ли выражение значение Null. Выражения, для которых может потребоваться значение True , в некоторых случаях, например If Var = Null и If Var <> Null , всегда имеют значение False. Это связано с тем, что любое выражение, содержащее значение NULL , само по себе имеет значение NULL и , следовательно, false.
Пример
В этом примере используется функция IsNull, чтобы определить, содержит ли переменная значение Null.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Excel vba если строка пустая
Проверь длину строки, например.
Dim s As String
If (Len(s) <> 0) Then
MsgBox («Кулллл!»)
End If
If (s <> «») Then
MsgBox («Кулллл!»)
End If
|
От: | Аноним |
Дата: | 15.03.05 12:31 | |
Оценка: |
Здравствуйте, Hades, Вы писали:
Строка — имеется в виду row, т.е. ячейки, расположенные на одинаковом горизонтальном уровне
|
От: | Unforgiver |
Дата: | 15.03.05 12:54 | |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Как с помощью vba в Excel таблице проверить является ли данная строка пустой (без данных, без оформления) или нет. Просто мне необходимо проходить все строки таблицы и выдёргивать нужную информацию. Но среди нужных строк иногда попадаются пустые строки, которые нужно игнорировать.
Включи обработчик ошибок:
Если строка пустая, то с ней ничего не сделается и выполнение пойдет дальше.
|
От: | Elena_ |
Дата: | 15.03.05 13:43 | |
Оценка: | 4 (1) |
Здравствуйте, Аноним, Вы писали:
А>Строка — имеется в виду row, т.е. ячейки, расположенные на одинаковом горизонтальном уровне
Ну если по содержанию ячеек, то перебрать строки можно, например, так
А по оформлению, может быть, нужно и смотреть оформление отдельно, надо подумать
|
От: | Аноним |
Дата: | 16.03.05 12:32 | |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Как с помощью vba в Excel таблице проверить является ли данная строка пустой (без данных, без оформления) или нет. Просто мне необходимо проходить все строки таблицы и выдёргивать нужную информацию. Но среди нужных строк иногда попадаются пустые строки, которые нужно игнорировать.
Да чего вы изголяетесь, пробежаться по всем строкам и по всем ячейкам в строке и не париться.
Вот прмер отчёта в Intermediate о «путотости»/»непустотости» каждой строки в активном листе:
PS: Задолбаетесь ждать, пока макрос отработает — жмите +. Это я так, на всяк.
|
От: | Elena_ |
Дата: | 16.03.05 13:49 | |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Да чего вы изголяетесь, пробежаться по всем строкам и по всем ячейкам в строке и не париться.
А>Вот прмер отчёта в Intermediate о «путотости»/»непустотости» каждой строки в активном листе:
А>
Но зачем проверять даже те ячейки, которые не попали в UsedRange?
Зачем проверять каждую ячейку, если можно проверить сразу диапазон?
|
От: | Аноним |
Дата: | 18.03.05 13:44 | |
Оценка: |
Здравствуйте, Elena_, Вы писали:
E_>Но зачем проверять даже те ячейки, которые не попали в UsedRange?
E_>Зачем проверять каждую ячейку, если можно проверить сразу диапазон?
Согласен, но тогда «отмажусь» нехваткой времени ==> сыростью программы.
+ тут уже есть пример с использованием UserRange.
PS: В 97’м ёкселе (были слухи что и в 2000’м) «SpecialCells(xlCellTypeBlanks)» не всегда корректно работает.
|
От: | Elena_ |
Дата: | 18.03.05 20:35 | |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>PS: В 97’м ёкселе (были слухи что и в 2000’м) «SpecialCells(xlCellTypeBlanks)» не всегда корректно работает.
В общем-то, если пустых ячеек совсем нет, то действительно некорректно получается
Я имела в виду, чтобы не перебирать по ячейке, так как при больших объемах это все-таки будет заметно
Источник
VBA IsEmpty — Как использовать функцию Excel VBA IsEmpty?
VBA IsEmpty
IsEmpty — это функция, которая используется для проверки, является ли ячейка, на которую ссылаются, пустой или нет. Это очень похоже на функцию ISBLANK в Excel. Функция IsEmpty в Excel VBA также называется информационной функцией в Excel, так как она дает информацию о том, является ли данная ячейка пустой или нет.
Функция IsEmpty — это встроенная функция в Excel VBA. Как объяснено в приведенном выше определении, оно используется для определения того, является ли данная ячейка пустой или нет. Если данная ячейка пуста, мы можем отобразить сообщение пользователю, что ячейка пуста, и если она не пуста, мы можем отобразить сообщение, что ячейка не пуста.
Синтаксис IsEmpty в Excel VBA
Синтаксис для функции Isempty следующий:
Мы можем использовать эту функцию, чтобы проверить, является ли одна ячейка пустой или весь диапазон данных пуст или нет. Эта функция возвращает два значения. Одно верно, а другое ложно. Если указанная ячейка пуста, функция возвращает значение как true, а если указанная ячейка не пуста, она возвращает значение как false.
Как использовать функцию VBA IsEmpty в Excel?
Мы узнаем, как использовать функцию VBA IsEmpty с несколькими примерами в Excel.
Вы можете скачать этот шаблон VBA IsEmpty Excel здесь — Шаблон VBA IsEmpty Excel
VBA IsEmpty — Пример № 1
Во-первых, давайте посмотрим значение, возвращаемое этой функцией, как она работает.
Чтобы использовать функцию VBA IsEmpty в Excel, выполните следующие действия:
Шаг 1: Перейдите на вкладку разработчика и нажмите на Visual Basic.
Шаг 2: Напишите следующий код в проекте.
Код:
Во-первых, давайте поймем код, написанный выше, шаг за шагом:
- Проверка — это имя определенной подфункции.
- Mycheck — это переменная, которую мы определили как строку, потому что функция Isempty возвращает логическое значение.
- Mycheck сохраняет значение Isempty, возвращаемое при проверке ячейки A1.
- Значение, хранящееся в Mycheck Variable, отображается функцией MsgBox.
Шаг 3: Запустите код, нажав кнопку запуска.
Мы можем видеть, что возвращаемое функцией значение равно true, поскольку ячейка A1 пуста.
VBA IsEmpty — Пример № 2
Теперь давайте воспользуемся функцией Isempty с функцией if для проверки определенной ячейки на рабочем листе, является ли она пустой или нет.
Чтобы использовать функцию VBA IsEmpty в Excel, выполните следующие действия:
Шаг 1: На вкладке разработчика нажмите Visual Basic под разделом кода.
Шаг 2: Напишите следующий код в окне кода,
Код:
Давайте еще раз поймем код, написанный выше, еще раз.
- Во-первых, мы определили нашу подфункцию как Sample1.
- Мы используем функцию Isempty с функцией If, чтобы проверить, пуста ли ячейка A1 или нет.
- Если ячейка A1 пуста, мы используем функцию msgbox для отображения сообщения о том, что данная ячейка пуста.
- Если ячейка A1 не пуста, мы используем функцию msgbox для отображения сообщения о том, что данная ячейка не пуста.
Шаг 3: Запустите приведенный выше код, нажав на кнопку «Выполнить».
Мы видим, что результат отображается как ячейка A1 пуста.
Шаг 4: Теперь поместите случайное значение в ячейку A, например, я поместил значение A в ячейку A1.
Шаг 5: Теперь снова запустите код, и мы получим следующий результат.
VBA IsEmpty — Пример № 3
Теперь давайте используем эту функцию, чтобы выяснить, является ли данный диапазон ячеек пустым или нет. Ранее мы использовали эту функцию в одной ячейке. В этом примере наш диапазон данных будет от B1: D7.
Чтобы использовать функцию VBA IsEmpty в Excel, выполните следующие действия:
Шаг 1: На вкладке разработчика нажмите Visual Basic под разделом кода.
Шаг 2: Напишите следующий код в окне кода,
Код:
Давайте разберемся в написанном выше коде шаг за шагом.
- После определения подфункции в качестве примера 2 мы определили переменную с именем cell как Range, а B пусто как Boolean, так как Boolean хранит логические значения.
- Мы заранее определили, что Bisempty будет ложным, если указанный диапазон ячеек не пустой.
- Но если данный диапазон ячеек пуст, значение, сохраненное в Bisempty, будет истинным.
- Если значение, хранящееся в переменной Bisempty, равно true, мы отображаем сообщение как пустые ячейки, или, если значение, сохраненное в переменной, равно false, мы отображаем сообщение как ячейки со значениями.
Шаг 3: Запустите приведенный выше код, нажав на кнопку «Выполнить».
Мы видим следующий результат, поскольку ячейка A1 пуста.
То, что нужно запомнить
Есть несколько вещей, которые мы должны помнить об Isempty Function в Excel VBA:
- Isempty похож на функцию Isblank в Excel.
- IsEmpty — это информационная функция.
- Функция IsEmpty возвращает логическое значение, т.е. true или false.
- Функция IsEmpty может использоваться для одной ячейки или для диапазона ячеек.
Рекомендуемые статьи
Это было руководство для VBA IsEmpty. Здесь мы обсудили, как использовать функцию Excel VBA IsEmpty вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Функция копирования и вставки в VBA
- Функция подстроки Excel
- Индекс VBA вне диапазона
- Excel ISNUMBER Formula
Источник
VBA Excel. Проверка переменных и выражений
Проверка переменных и выражений с помощью встроенных функций VBA Excel: IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull, IsNumeric, IsObject.
Проверка переменных и выражений
Встроенные функции VBA Excel — IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull, IsNumeric, IsObject — проверяют значения переменных и выражений на соответствие определенному типу данных или специальному значению.
Синтаксис функций для проверки переменных и выражений:
Expression — выражение, переменная или необязательный аргумент для IsMissing.
Все функции VBA Excel для проверки переменных и выражений являются логическими и возвращают значение типа Boolean — True или False.
Функция IsArray
Описание функции
Функция IsArray возвращает значение типа Boolean, указывающее, является ли переменная массивом:
- True — переменная является массивом;
- False — переменная не является массивом.
Пример с IsArray
Как показывает пример, функция IsArray возвращает True и в том случае, если переменная только объявлена как массив, но еще не содержит значений.
Функция IsDate
Описание функции
Функция IsDate возвращает логическое значение, указывающее, содержит ли переменная значение, которое можно интерпретировать как дату:
- True — переменная содержит дату, выражение возвращает дату, переменная объявлена с типом As Date;
- False — в иных случаях.
Пример с IsDate
Функция IsEmpty
Описание функции
Функция IsEmpty возвращает значение типа Boolean, указывающее, содержит ли переменная общего типа (As Variant) значение Empty:
- True — переменная содержит значение Empty;
- False — переменной присвоено значение, отличное от Empty.
Пример с IsEmpty
Как видно из примера, функцию IsEmpty можно использовать для проверки ячеек на содержание значения Empty (пустая ячейка общего формата).
Функция IsError
Описание функции
Функция IsError возвращает логическое значение, указывающее, является ли аргумент функции значением ошибки, определенной пользователем:
- True — аргумент функции является значением ошибки, определенной пользователем;
- False — в иных случаях.
Пользователь может определить одну или несколько ошибок для своей процедуры или функции с рекомендациями действий по ее (их) исправлению. Возвращается номер ошибки с помощью функции CVErr.
Пример с IsError
Допустим, пользователь определил, что ошибка №25 означает несоответствие аргумента функции Vkuba числовому формату:
Источник
Определение с помощью кода VBA Excel, что диапазон ячеек пуст, то есть, ни одна из ячеек диапазона (строки, столбца) не содержит отображаемого значения.
Определение пустого диапазона
Определить в VBA Excel, что диапазон ячеек пуст, можно с помощью функции рабочего листа WorksheetFunction.CountA или свойства диапазона ячеек Range.Text.
Пример 1
Определение, что диапазон ячеек пуст, с помощью функции рабочего листа WorksheetFunction.CountA:
Sub Primer1() If WorksheetFunction.CountA(Range(«A1:L8»)) = 0 Then MsgBox «Диапазон ячеек ««A1:L8»» пуст» Else MsgBox «Диапазон ячеек ««A1:L8»» не пуст» End If End Sub |
Функция WorksheetFunction.CountA подсчитывает количество ячеек, содержащих значения, в том числе нули и формулы, возвращающие пустые строки. Если хотя бы одна ячейка в диапазоне будет содержать пустую строку, возвращенную формулой, то код первого примера определит, что диапазон не пуст.
Пример 2
Определение, что диапазон ячеек пуст, с помощью свойства Text объекта Range:
Sub Primer2() If Range(«A1:L8»).Text = «» Then MsgBox «Диапазон ячеек ««A1:L8»» пуст» Else MsgBox «Диапазон ячеек ««A1:L8»» не пуст» End If End Sub |
Свойство Text объекта Range возвратит пустую строку только в том случае, если все ячейки диапазона будут содержать пустые строки и (или) значение Empty. Если одна или более ячеек в диапазоне будут содержать пустую строку, возвращенную формулой, то код второго примера все-равно определит, что диапазон пуст.
Определение пустой строки
Определение пустой строки в VBA Excel с помощью свойства Range.Text:
Sub Primer3() If Rows(5).Text = «» Then MsgBox «Указанная строка пуста» Else MsgBox «Указанная строка не пуста» End If End Sub |
Данное определение пустой строки используется в коде для удаления пустых строк из таблицы.
Определение пустого столбца
Определение пустого столбца в VBA Excel с помощью свойства Range.Text:
Sub Primer4() If Columns(7).Text = «» Then MsgBox «Указанный столбец пуст» Else MsgBox «Указанный столбец не пуст» End If End Sub |
или
Sub Primer5() If Columns(«G»).Text = «» Then MsgBox «Указанный столбец пуст» Else MsgBox «Указанный столбец не пуст» End If End Sub |
Фразы для контекстного поиска: диапазон пустой, строка пустая, столбец пустой.
Проверить есть ли в строке данные
|
От: | Аноним | |
Дата: | 15.03.05 06:55 | ||
Оценка: |
Как с помощью vba в Excel таблице проверить является ли данная строка пустой (без данных, без оформления) или нет. Просто мне необходимо проходить все строки таблицы и выдёргивать нужную информацию. Но среди нужных строк иногда попадаются пустые строки, которые нужно игнорировать.
Re: Проверить есть ли в строке данные
|
От: |
Hades |
|
Дата: | 15.03.05 09:03 | ||
Оценка: |
Проверь длину строки, например…
Dim s As String
If (Len(s) <> 0) Then
MsgBox («Кулллл!»)
End If
s = «aaa»
или так:
If (s <> «») Then
MsgBox («Кулллл!»)
End If
Re[2]: Проверить есть ли в строке данные
|
От: | Аноним | |
Дата: | 15.03.05 12:31 | ||
Оценка: |
Здравствуйте, Hades, Вы писали:
Строка — имеется в виду row, т.е. ячейки, расположенные на одинаковом горизонтальном уровне
Re: Проверить есть ли в строке данные
|
От: |
Unforgiver |
|
Дата: | 15.03.05 12:54 | ||
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Как с помощью vba в Excel таблице проверить является ли данная строка пустой (без данных, без оформления) или нет. Просто мне необходимо проходить все строки таблицы и выдёргивать нужную информацию. Но среди нужных строк иногда попадаются пустые строки, которые нужно игнорировать.
Включи обработчик ошибок:
On Error Resume Next
' Делаем операцию со строкой.
On Error Goto 0
Если строка пустая, то с ней ничего не сделается и выполнение пойдет дальше.
Всё заканчивается плохо. Если что-то закончилось хорошо — значит оно еще не закончилось.
Re[3]: Проверить есть ли в строке данные
|
От: |
Elena_ |
|
Дата: | 15.03.05 13:43 | ||
Оценка: |
4 (1) |
Здравствуйте, Аноним, Вы писали:
А>Строка — имеется в виду row, т.е. ячейки, расположенные на одинаковом горизонтальном уровне
Ну если по содержанию ячеек, то перебрать строки можно, например, так
Dim ranRow As Range
For Each ranRow In ActiveSheet.UsedRange.Rows
If Intersect(ranRow, ActiveSheet.UsedRange).Address = _
ranRow.SpecialCells(xlCellTypeBlanks).Address Then
MsgBox ranRow.row & " - Пустая Строка"
Else
MsgBox ranRow.row & " - Непустая Строка"
End If
Next ranRow
А по оформлению, может быть, нужно и смотреть оформление отдельно, надо подумать
Пользователь — друг программиста!
Re: Странные вы какие-то…
|
От: | Аноним | |
Дата: | 16.03.05 12:32 | ||
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Как с помощью vba в Excel таблице проверить является ли данная строка пустой (без данных, без оформления) или нет. Просто мне необходимо проходить все строки таблицы и выдёргивать нужную информацию. Но среди нужных строк иногда попадаются пустые строки, которые нужно игнорировать.
Да чего вы изголяетесь, пробежаться по всем строкам и по всем ячейкам в строке и не париться.
Вот прмер отчёта в Intermediate о «путотости»/»непустотости» каждой строки в активном листе:
Option Explicit
Public Sub RowsCheck()
Dim clsRow As Excel.Range
Dim clsCell As Excel.Range
Dim clsActiveSheet As Excel.Worksheet
Dim blnEmpty As Boolean
Set clsActiveSheet = ActiveSheet
For Each clsRow In clsActiveSheet.Rows
blnEmpty = True
''''''''''''''''''''''''''''''''''''''
'Тут проверяешь каждую строку в листе.
For Each clsCell In clsRow.Cells
'''''''''''''''''''''''''''''''''''''''
'Тут проверяешь каждую ячейку в строке.
If Not VBA.IsEmpty(clsCell.Value) Then
blnEmpty = False
Exit For
End If
Next clsCell
If blnEmpty Then
Debug.Print "Row:""" & clsRow.Address & """ Is Empty"
Else
Debug.Print "Row:""" & clsRow.Address & """ Is Not Empty"
End If
Next clsRow
End Sub
PS: Задолбаетесь ждать, пока макрос отработает — жмите {Ctrl}+{Pause|Break}. Это я так, на всяк…
Re[2]: Странные вы какие-то…
|
От: |
Elena_ |
|
Дата: | 16.03.05 13:49 | ||
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Да чего вы изголяетесь, пробежаться по всем строкам и по всем ячейкам в строке и не париться.
А>Вот прмер отчёта в Intermediate о «путотости»/»непустотости» каждой строки в активном листе:
А>
А> For Each clsRow In clsActiveSheet.Rows
А> blnEmpty = True
А> ''''''''''''''''''''''''''''''''''''''
А> 'Тут проверяешь каждую строку в листе.
А> For Each clsCell In clsRow.Cells
А> '''''''''''''''''''''''''''''''''''''''
А> 'Тут проверяешь каждую ячейку в строке.
А> If Not VBA.IsEmpty(clsCell.Value) Then
А> blnEmpty = False
А> Exit For
А> End If
А> Next clsCell
А>
Но зачем проверять даже те ячейки, которые не попали в UsedRange?
Зачем проверять каждую ячейку, если можно проверить сразу диапазон?
Пользователь — друг программиста!
|
От: | Аноним | |
Дата: | 18.03.05 13:44 | ||
Оценка: |
Здравствуйте, Elena_, Вы писали:
E_>Но зачем проверять даже те ячейки, которые не попали в UsedRange?
E_>Зачем проверять каждую ячейку, если можно проверить сразу диапазон?
Согласен, но тогда «отмажусь» нехваткой времени ==> сыростью программы.
+ тут уже есть пример с использованием UserRange.
PS: В 97’м ёкселе (были слухи что и в 2000’м) «SpecialCells(xlCellTypeBlanks)» не всегда корректно работает…
|
От: |
Elena_ |
|
Дата: | 18.03.05 20:35 | ||
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>PS: В 97’м ёкселе (были слухи что и в 2000’м) «SpecialCells(xlCellTypeBlanks)» не всегда корректно работает…
В общем-то, если пустых ячеек совсем нет, то действительно некорректно получается
Я имела в виду, чтобы не перебирать по ячейке, так как при больших объемах это все-таки будет заметно
Можно еще, например,
Dim ranRow As Range
For Each ranRow In ActiveSheet.UsedRange.Rows
If Application.WorksheetFunction.CountBlank(ranRow.EntireRow) = 256 Then
MsgBox ranRow.Row & " - Пустая Строка"
Else
MsgBox ranRow.Row & " - Непустая Строка"
End If
Next ranRow
Пользователь — друг программиста!
- Переместить
- Удалить
- Выделить ветку
Пока на собственное сообщение не было ответов, его можно удалить.
roneta90 0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
||||||
1 |
||||||
Выполнить действие, если в диапазоне есть пустая строка29.10.2016, 16:33. Показов 8646. Ответов 9 Метки нет (Все метки)
всем доброго времени суток.подскажите пожалуйста , задача у меня такая: если в диапазоне А1:L10 есть пустая строка (в примере строка 6) то выполняем одной действие (например ячейка М1 красным выделяется) а если в этом же диапазоне (А1:L10) нет пустой строки то выполняем другое действие(N1 выделяется красным) я колупалась дошла до такого варианта(эксперементировала,пробовала выделить строку чтоб потом по подобию загнать условие в цикл if…Then ) но получилось выделить все пустые ЯЧЕЙКИ во всех строках. А мне нужна пустая СТРОКА. когда ввожу условие if …then пишет ошибку type s mismatch. Вообщем мои изыскания завели меня в тупик — на них особо не обращайте внимания)
Вложения
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
29.10.2016, 16:33 |
Ответы с готовыми решениями: Условие: если строка пустая — выполнить действие "Условие: если строка пустая -… Нужно проверить существует ли определенный объект, и после этого выполнить действие, если он есть
Google Таблицы. Как при изменении ячейки в определенном диапазоне выполнить действие? Необходимо написать постоянно… 9 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
29.10.2016, 16:51 |
2 |
|||
roneta90, есть такой прием
1 |
roneta90 0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
||||
29.10.2016, 16:51 [ТС] |
3 |
|||
появился еще один варианта но по прежнему реагирует на пустую ячейку в строке.а мне нужно чтоб условие выполнялось если вся строка в диапазоне пустая
0 |
roneta90 0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
||||||
29.10.2016, 22:51 [ТС] |
4 |
|||||
добрый день! работает но если пустая строка есть то выполняются оба условия. Я вам опишу полный макрос может получится адаптировать(у самой допилить не получилось) :существует три блока данных за определенные числа(14,15,16). каждый блок подразделяется на два диапазона(зеленый и красный) которые разделяются пустой строкой(желтая). правило 1 получилось сделать у меня получилось(реализовано на книге first1 макрос запускается с книги Основной)
а вот второе правило когда внутри блока нет пустой строки не получается реализовать. Хелп,пожалуйста Вложения
0 |
anton-sf 123 / 59 / 14 Регистрация: 29.03.2015 Сообщений: 265 |
||||
30.10.2016, 00:41 |
5 |
|||
Не вижу другой возможности кроме перебора всех строк диапазона с проверкой всех ячеек в строке Добавлено через 9 минут Вы проверяете объект (Range), ответ не может быть ничем другим как либо Range либо Nothing, поэтому у вас возникает ошибка типа данных Я бы сделал так: Добавлено через 2 минуты
1 |
roneta90 0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
||||
30.10.2016, 01:06 [ТС] |
6 |
|||
я тут такое решение придумала(впринципе на основании вашего) построчно даты записывать
теперь возник вопрос с границами блоков : For i = Cells(d.row+1) To Cells(d1.Row — 1)(получается когда я выполняю поиск дат для верхней границы блока у меня получается значение d.row(верхняя дата)+1 и нижняя граница d1.row(нижняя дата)-1
0 |
123 / 59 / 14 Регистрация: 29.03.2015 Сообщений: 265 |
|
30.10.2016, 01:26 |
7 |
на какой строке спотыкается из приведенных выше ?
1 |
0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
|
30.10.2016, 01:27 [ТС] |
8 |
For i = Cells(d.row+1) To Cells(d1.Row — 1) ПИШЕТ ОШИБКУ OVERFLOW
0 |
123 / 59 / 14 Регистрация: 29.03.2015 Сообщений: 265 |
|
30.10.2016, 01:49 |
9 |
Решение гм, а зачем вы пишете cells?
1 |
roneta90 0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
||||
30.10.2016, 02:06 [ТС] |
10 |
|||
0 |
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#1 12.11.2020 12:17:05 Доброго времени суток, Планетяне!
Изменено: Jack Famous — 12.11.2020 12:20:00 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#2 12.11.2020 13:20:51
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
Пустая но не очень По вопросам из тем форума, личку не читаю. |
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#4 12.11.2020 15:01:43 Дмитрий(The_Prist) Щербаков, привет
если ты про Integer, то он либо медленнее, либо такой же по скорости, как Long (сюрприз)
взял название известной функции и добавил отрицательное возвращаемое значения для контроля ошибок. Мне отлично. Сейчас выложу версию, включающую ещё один отрицательный вывод — для псевдополных (только пробелы, неразрывные пробелы и переносы)
у меня это диалоги, выводимые опционально. То есть, при проверке строки я могу сразу вывести итог проверки без дополнительного кодинга, т.к. варианты сообщений вшиты в функцию Изменено: Jack Famous — 12.11.2020 15:01:59 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||||||
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#5 12.11.2020 15:09:28 Коротко: если в вариативную переменную x передать значение ячейки Cell.Value, и при этом x=Empty And Not IsEmpty(x) — это означает, что в ячейке была строка нулевой длины, которую можно получить формулой «=»»» или вставленным значением её
Изменено: Jack Famous — 12.11.2020 15:29:37 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#6 12.11.2020 15:10:21 Доброе время суток
Алексей, или меняйте
на Variant или в
используйте
|
||||||||
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
хватит ко мне «на вы» уже обращаться)) Изменено: Jack Famous — 12.11.2020 15:23:14 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#8 12.11.2020 15:30:23
да. Я думал догадаешься, что проверять надо ПОСЛЕ проверки на IsEmpty…
Мне лично так нагляднее, чем ElseIf непонятно с чем. Но это дело вкуса. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#9 12.11.2020 15:33:15 Дмитрий(The_Prist) Щербаков, те же яйца, только в профиль
1. у меня просто Empty вместо vbNullString Изменено: Jack Famous — 12.11.2020 15:38:25 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#10 12.11.2020 15:58:54
А чего вы собственно от неё ещё хотели? Если работаете с данными ячейки, то сначала определяется тип того, что там и если это строка — тогда уже проверка строкового значения. Медведь же уже написал, но ваши ответы на его подколки — всё мимо
Алексей, так принято на форуме — зачем нарушать? |
||||||||
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
#11 12.11.2020 16:08:44
я байты памяти кто будет экономить????? По вопросам из тем форума, личку не читаю. |
||
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#12 12.11.2020 17:03:04
неправда)) тут с незнакомыми так принято и мы с Мишей обижаемся, когда ты отчуждаешься По остальному я так и не понял, в чём проблема-то: 1. я определяю пустая ли ячейка на самом деле или в ней есть строка нулевой длины. Иногда это имеет значение и не одно и то же Функция не работает или работает как-то неправильно? Изменено: Jack Famous — 12.11.2020 17:04:06 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||