Проверить примечание excel vba

Adviser-faa

1

Как узнать, есть ли примечание в ячейке?

16.08.2010, 15:27. Показов 4631. Ответов 4


Студворк — интернет-сервис помощи студентам

и/или например, есть в заданной дирректории файл?
СПАСИБО!

vlth

14 / 14 / 2

Регистрация: 23.03.2010

Сообщений: 635

16.08.2010, 15:51

2

Visual Basic
1
2
3
4
5
6
7
If Not actievecell.Comment Is Nothing Then...'в активной ячейке есть примечание
 
Set FSO = WScript.CreateObject('Scripting.FileSystemObject')
If FSO.FileExists(strPath) Then...'файл существует
 
Set objFolder = FSO.GetFolder(strFolder)
if objFolder.Files.count>0 then... 'в папке есть файлы

(для реализации этих примеров необходимо создать ссылку на Microsoft Scripting Runtime)

или

Visual Basic
1
If len(Dir$(strPath)) > 0 Then...'файл существует

(strPath -полный путь к файлу, strFolder-полный путь к папке)



0



Gloom

16.08.2010, 15:53

3

Visual Basic
1
2
If MyCell.Comment is nothing Then 'примечания нет
If Len(dir(PathName))=0 Then 'Директория пустая или вообще отсутствует

Adviser-faa

16.08.2010, 16:15

4

Спасибо!

tomik

27.09.2010, 19:00

5

Visual Basic
1
2
3
4
5
6
7
If FSO.FileExists(strPath) Then...'файл существует
Set objFolder = FSO.GetFolder(strFolder)
if objFolder.Files.count>0 then... 'в папке есть файлы
Set FSO = WScript.CreateObject('Scripting.FileSystemObject')
if len(Dir$(strPath)) > 0 Then...'файл существует
If MyCell.Comment is nothing Then 'примечания нет
If Len(dir(PathName))=0 Then 'Директория пустая или вообще отсутствует
 

Добрый вечер!

Подскажите, пожалуйста, как программно определить, содержит ли ячейка примечание?

 

iba2004

Пользователь

Сообщений: 1034
Регистрация: 22.12.2012

#2

13.03.2013 00:52:05

М.б. это кривова-то, но я делал так:

Код
 
If Cells(1, 1).Comment Is Nothing Then
     Else
  ...........
End If

И после else вписываю то, что мне нужно, если ячейка с комментарием.

Потыркался малёк и вот такой вариант родился:

Код
 
If Not Cells(1, 1).Comment Is Nothing Then
  ............
End If

Изменено: iba200413.03.2013 01:35:51

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

#3

13.03.2013 00:52:52

Вариант:

Код
Sub tt()
    Dim r As Range
    Set r = Intersect([a1], ActiveSheet.UsedRange.SpecialCells(xlCellTypeComments))
    If Not r Is Nothing Then
        MsgBox "OK"
    Else
        MsgBox "NO"
    End If
End Sub
 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

#4

13.03.2013 07:01:46

Игорь, в случае отсутствия комментов макрос вылетит с ошибкой. Лучше:

Код
Sub tt()
    Dim r As Range
    On Error Resume Next
    Set r = Intersect([a1], ActiveSheet.UsedRange.SpecialCells(xlCellTypeComments))
    If Err Then Err.Clear: MsgBox "NO": Exit Sub
    MsgBox "Yes!"
End Sub

Я сам — дурнее всякого примера! …

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

#5

13.03.2013 10:41:30

Тоже мимо :)
Придём к консенсусу:

Код
Sub tt()
    Dim r As Range
    On Error Resume Next
    Set r = Intersect([a1], ActiveSheet.UsedRange.SpecialCells(xlCellTypeComments))
    If Err Then Err.Clear: MsgBox "Комментов нет нигде вообще совсем!": Exit Sub
     If Not r Is Nothing Then
        MsgBox "OK"
    Else
        MsgBox "NO"
    End If
End Sub
 

Maksymromaniuk

Пользователь

Сообщений: 66
Регистрация: 22.02.2013

#6

17.03.2013 16:49:09

спасибо всем за множество вариантов)

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки


    1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
    2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость — сестра таланта.
    3. Не забывайте использовать теги [сode=vba] …текст программы… [/code] для выделения текста программы подсветкой!
    4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.

    >
    Excel: Наличие комментария в ячейке
    , как проверить?

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    17.01.05, 13:25

      Добавить комментарии:

      ExpandedWrap disabled

        Range(«C9»).AddComment(«бла-бла-бла»)

      Изменить комментарии:

      ExpandedWrap disabled

        Range(«C9»).Comment.Text(«бла-бла-бла», 0 , true)

      Проблема в чем:
      Есть некий текст. Его надо добавить как комментарий к ячейке, где комментария еще нет, или добавить этот текст к существующему комментарию ячейки через запятую.
      Таким образом: как проверить есть ли комментарий в ячейке?


      SpawnProduction



      Сообщ.
      #2

      ,
      17.01.05, 15:36

        ExpandedWrap disabled

          ‘ Function IsCommentsPresent

          ‘ Возвращает TRUE, если на активном рабочем листе имеется хотя бы

          ‘ одна ячейка с комментарием, иначе возвращает FALSE

          Public Function IsCommentsPresent() As Boolean

          IsCommentsPresent = ( ActiveSheet.Comments.Count <> 0 )

          End Function

        Ща поищу насчёт наличия в конкретной ячейке…

        Добавлено 17.01.05, 15:38
        Хм вроде вот, но только у активной ячейки…

        ExpandedWrap disabled

          If Not ActiveCell.Comment Is Nothing Then …

        Сообщение отредактировано: Spawn™Production® — 17.01.05, 15:38

        Master

        Chow



        Сообщ.
        #3

        ,
        18.01.05, 08:25

          Спасибо!
          Нормально работает не только с активной ячейкой, а с любой.

          ExpandedWrap disabled

            If Range(«A1»).Comment Is Nothing Then …

          Добавлено 18.01.05, 08:27
          Я, почему-то не додумался проверять просто свойство «Comment», а сразу лез к его подсвойству «Text»… Типа так:

          ExpandedWrap disabled

            If Range(«A1»).Comment.Text <> «» Then …

          Естественно оно падало…

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • VB for Application
          • Следующая тема

          Рейтинг@Mail.ru

          [ Script execution time: 0,0297 ]   [ 16 queries used ]   [ Generated: 16.04.23, 19:06 GMT ]  

          Формулировка задачи:

          и/или например, есть в заданной дирректории файл?
          СПАСИБО!

          Код к задаче: «Как узнать, есть ли примечание в ячейке?»

          textual

          If FSO.FileExists(strPath) Then...'файл существует
          Set objFolder = FSO.GetFolder(strFolder)
          if objFolder.Files.count>0 then... 'в папке есть файлы
          Set FSO = WScript.CreateObject('Scripting.FileSystemObject')
          if len(Dir$(strPath)) > 0 Then...'файл существует
          If MyCell.Comment is nothing Then 'примечания нет
          If Len(dir(PathName))=0 Then 'Директория пустая или вообще отсутствует

          Полезно ли:

          8   голосов , оценка 3.750 из 5

          Условие отображения примечания

          alex77755

          Дата: Вторник, 25.12.2012, 14:24 |
          Сообщение № 1

          Группа: Проверенные

          Ранг: Обитатель

          Сообщений: 362


          Репутация:

          64

          ±

          Замечаний:
          0% ±


          Добрый всем день
          Попалась книга с проверкой заполненности 5 ячеек.
          В случае если какая-то ячейка не заполнена в целевой ячейке показывается примечание
          Показать принудительно могу
          [vba]

          Код

          Sub Макрос1()
               Range(«K36»).Comment.Shape.Visible = msoCTrue
          End Sub

          [/vba]
          могу организовать проверку при изменении листа проверить нужные ячейки и отобразить
          Но вот как это сделано на листе без макроса не пойму
          Кто знает — подскажите.


          Могу помочь в VB6, VBA
          Alex77755@mail.ru

           

          Ответить

          Serge_007

          Дата: Вторник, 25.12.2012, 15:26 |
          Сообщение № 2

          Группа: Админы

          Ранг: Местный житель

          Сообщений: 15894


          Репутация:

          2623

          ±

          Замечаний:
          ±


          Excel 2016

          Цитата (alex77755)

          Попалась книга с проверкой заполненности 5 ячеек.
          В случае если какая-то ячейка не заполнена в целевой ячейке показывается примечание

          А книга-то где?


          ЮMoney:41001419691823 | WMR:126292472390

           

          Ответить

          alex77755

          Дата: Вторник, 25.12.2012, 16:03 |
          Сообщение № 3

          Группа: Проверенные

          Ранг: Обитатель

          Сообщений: 362


          Репутация:

          64

          ±

          Замечаний:
          0% ±


          Да я думал вы на словах скажете куда копать. Охота же самому разобраться.


          Могу помочь в VB6, VBA
          Alex77755@mail.ru

           

          Ответить

          Serge_007

          Дата: Вторник, 25.12.2012, 16:09 |
          Сообщение № 4

          Группа: Админы

          Ранг: Местный житель

          Сообщений: 15894


          Репутация:

          2623

          ±

          Замечаний:
          ±


          Excel 2016

          Я когда-то давно видел такой файл (по условию скрывалось/показывалось без макросов примечание с картинкой змеи), но так как практического смысла в данном трюке не обнаружилось, то и решение благополучно забылось…
          Увидев файл, я, естественно, его (решение) вспомнил бы


          ЮMoney:41001419691823 | WMR:126292472390

           

          Ответить

          alex77755

          Дата: Вторник, 25.12.2012, 16:15 |
          Сообщение № 5

          Группа: Проверенные

          Ранг: Обитатель

          Сообщений: 362


          Репутация:

          64

          ±

          Замечаний:
          0% ±


          Serge_007, Я уже подумываю может быть оно было сразу показано(Примечания отобразить все)
          Но оно находится вне зоны видимоти и я его не заметил сразу?

          К сообщению приложен файл:

          1858634.rar
          (5.1 Kb)


          Могу помочь в VB6, VBA
          Alex77755@mail.ru

           

          Ответить

          Serge_007

          Дата: Вторник, 25.12.2012, 16:31 |
          Сообщение № 6

          Группа: Админы

          Ранг: Местный житель

          Сообщений: 15894


          Репутация:

          2623

          ±

          Замечаний:
          ±


          Excel 2016

          Алекс, вполне может быть, однако отображать примечание по условию можно
          Я помню форум, на котором я видел этот файл, помню автора файла, но не могу найти поиском, потому что не знаю как запрос составить, а все 1 865 постов автора решения перебирать крайне муторно…


          ЮMoney:41001419691823 | WMR:126292472390

           

          Ответить

          alex77755

          Дата: Вторник, 25.12.2012, 16:57 |
          Сообщение № 7

          Группа: Проверенные

          Ранг: Обитатель

          Сообщений: 362


          Репутация:

          64

          ±

          Замечаний:
          0% ±


          Я пытался и гугули спрашивать, но там ещё больше вариантов. Решил в процессе обработки проверить и принять меры. А вообще вопрос интересный. В качестве проверки чего-то. Пока некогда — на досуге поищу
          Спасибо за ссылку — посмотрю


          Могу помочь в VB6, VBA
          Alex77755@mail.ru

           

          Ответить

          Alex_ST

          Дата: Вторник, 25.12.2012, 17:08 |
          Сообщение № 8

          Группа: Друзья

          Ранг: Участник клуба

          Сообщений: 3176


          Репутация:

          604

          ±

          Замечаний:
          0% ±


          2003

          Да наверняка рудиментарные органы Excel’я использовали — встроенные макрофункции.
          Они хоть по сути и макросы, но в VBE не отображаются, а даже формат ячейки менять могут.
          Серж, кто там у нас в них разбирается? Что-то я запамятовал…



          С уважением,
          Алексей
          MS Excel 2003 — the best!!!

           

          Ответить

          Serge_007

          Дата: Вторник, 25.12.2012, 17:09 |
          Сообщение № 9

          Группа: Админы

          Ранг: Местный житель

          Сообщений: 15894


          Репутация:

          2623

          ±

          Замечаний:
          ±


          Excel 2016

          Цитата (Serge_007)

          по условию скрывалось/показывалось без макросов примечание с картинкой змеи


          ЮMoney:41001419691823 | WMR:126292472390

           

          Ответить

          Alex_ST

          Дата: Вторник, 25.12.2012, 17:12 |
          Сообщение № 10

          Группа: Друзья

          Ранг: Участник клуба

          Сообщений: 3176


          Репутация:

          604

          ±

          Замечаний:
          0% ±


          2003

          Серёга, а ты уверен, что БЕЗ МАКРОСОВ?
          Ведь макрофункции в VBE не видно.



          С уважением,
          Алексей
          MS Excel 2003 — the best!!!

           

          Ответить

          Michael_S

          Дата: Вторник, 25.12.2012, 17:15 |
          Сообщение № 11

          Группа: Друзья

          Ранг: Старожил

          Сообщений: 2012


          Репутация:

          373

          ±

          Замечаний:
          0% ±


          Excel2016

          Макрофункции все равно просят включить макросы.

           

          Ответить

          Serge_007

          Дата: Вторник, 25.12.2012, 17:17 |
          Сообщение № 12

          Группа: Админы

          Ранг: Местный житель

          Сообщений: 15894


          Репутация:

          2623

          ±

          Замечаний:
          ±


          Excel 2016

          Цитата (Alex_ST)

          Серёга, а ты уверен, что БЕЗ МАКРОСОВ?

          Цитата (Alex_ST)

          кто там у нас в них разбирается?


          ЮMoney:41001419691823 | WMR:126292472390

           

          Ответить

          Alex_ST

          Дата: Среда, 26.12.2012, 16:53 |
          Сообщение № 13

          Группа: Друзья

          Ранг: Участник клуба

          Сообщений: 3176


          Репутация:

          604

          ±

          Замечаний:
          0% ±


          2003

          Серж, не передёргивай по времени и не выдёргивай из разных по смыслу моих постов слова в цитаты, а то ведь я не поленюсь и из твоих по одному-два слова такого нацитирую! smile
          В макросах-то я более-менее разбираюсь, а вот в макрофункциях — НЕТ!
          А макрофункции хоть и требуют разрешения макросов для их работы, но к VBA имеют ну ОЧЕНЬ малое отношение. Они, пожалуй, ближе к формулам листа, в которых ТЫ спец.



          С уважением,
          Алексей
          MS Excel 2003 — the best!!!

           

          Ответить

          Serge_007

          Дата: Среда, 26.12.2012, 17:14 |
          Сообщение № 14

          Группа: Админы

          Ранг: Местный житель

          Сообщений: 15894


          Репутация:

          2623

          ±

          Замечаний:
          ±


          Excel 2016

          [offtop]Лёш, ты в смысл того что я написал вдумайся
          Ты меня спрашиваешь, уверен ли я, что не использовались макрофункции
          Я отвечаю (твоей цитатой), что уверен, потому как я в них разбираюсь
          Про тебя в моём посте вообще не слова![/offtop]

          Цитата (Alex_ST)

          макрофункции к VBA имеют ну ОЧЕНЬ малое отношение

          Они вообще к VBA не имеют никакого отношения
          Это ДРУГОЙ язык (Excel Macro)


          ЮMoney:41001419691823 | WMR:126292472390

           

          Ответить

          Понравилась статья? Поделить с друзьями:
        • Проверить документ word на орфографию
        • Проверить поиском решения в excel
        • Проверить excel на наличие формул
        • Проверить подпись в excel
        • Проведение финансового анализа в excel это