Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: помогите разобраться с условием Добавлено: 17.05.08 07:16  

Автор вопроса:  noob
никак не получается сделать следующее условие, выходит bug . необходимо добавить в ячейку ексель comment, а если он уже есть то добавлять не надо, или другое условие - отредактировть этот коммент

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 36
 Профиль | | #1 Добавлено: 17.05.08 09:05
Для ячейки А1

Sub Макрос1()
Dim xComm As Comment
    Set xComm = Range("A1";).Comment
    If xComm Is Nothing Then
        With Range("A1";)
            .AddComment
            .Comment.Text "бла-бла-бла"
        End With
    Else
        MsgBox "Комментарий уже есть!"
    End If
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 noob



Вопросов: 5
Ответов: 25
 Профиль | | #2 Добавлено: 17.05.08 15:22
спасибо разобрался
Sub add_comment()
    Columns("B:B";).Select
    Selection.Insert Shift:=xlToRight
    Range("B1";).Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet3!C[-1]:C,2,FALSE)"
    Selection.AutoFill Destination:=Range("B1:B20";), Type:=xlFillDefault
    Range("B1:B20";).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B1";).Select
    Application.CutCopyMode = False
    For z = 1 To 20
Dim xComm As Comment
    Set xComm = Range("c" & z).Comment
    If xComm Is Nothing Then
        With Range("c" & z)
            .AddComment
            .Comment.Text "sd" & Chr(10) & Range("b" & z)
        End With
   Else
    Range("c" & z).Comment.Text "sd" & Chr(10) & Range("b" & z)
    End If
Next
Columns("B:B";).Select
Selection.Delete Shift:=xlToLeft
 End Sub

Ответить

Номер ответа: 3
Автор ответа:
 noob



Вопросов: 5
Ответов: 25
 Профиль | | #3 Добавлено: 21.05.08 12:30
подскажите пожалуйста
получается выполнение только для одного листа для нескольких листов никак не могу написать выходит bug.

Ответить

Номер ответа: 4
Автор ответа:
 StrongMax



Вопросов: 1
Ответов: 4
 Профиль | | #4 Добавлено: 26.05.08 10:42
Нужно либо менять Активный лист, либо пользоваться конструкцией Книга.Лист("Лист2";).Яцейки.

Прошу прощения, не могу прислать код. Нет Office на компе.

Ответить

Номер ответа: 5
Автор ответа:
 Smith



ICQ: ненавижу 

Вопросов: 28
Ответов: 317
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #5
Добавлено: 28.05.08 09:04
Noob, всё этими Range, Select да ActiveCell пользуешься.

Для нескольких листов это запросто, но лучше откажись от макросовских методов.

Тут ещё другая проблема, AddComment не принимает переменные, только константы, "текст" заготовленный ещё в коде.

Т.е. в коммент нельзя назначить текст из ячейки.

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

Ответить

Номер ответа: 6
Автор ответа:
 noob



Вопросов: 5
Ответов: 25
 Профиль | | #6 Добавлено: 30.05.08 09:46
текст из ячейки получается вставить в комментарий. для нескольких листов практически получается если не менять следующее, но тогда для всех листов вставится одно и то же - при изменении имени листа (sheet2)из которого копируются ячейки
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],'[file.xls]sheet2'!C1:C3,3,FALSE)"


возникает bug в

  .Comment.Text "sd" & Chr(10) & Range("b" & z)
        End With
   Else
    Range("c" & z).Comment.Text "sd" & Chr(10) & Range("b" & z)
    End If

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам