Вставка нескольких значений ячеек в комментарий

У меня есть задача добавить комментарий в итоговую сумму по месяцам, чтобы показать задействованные элементы и сумму. Хочу упростить работу, т.к. делаю это ежемесячно и каждую работу (более 20 работ)!

Я нашел решения для одной ячейки.

Мне нужно добавить связанные значения ячеек в один комментарий за месяц.
Вставка нескольких значений ячеек в комментарий

Option Explicit

Sub CreateComment()

    Dim rng As Range
    Dim cel As Range
    Dim myColumn, myRow As Integer
    
    Set rng = Selection
    myColumn = ActiveCell.Column
    myRow = ActiveCell.Row
    
        
    For Each cel In rng
        If cel.Value <> "" Then
        Range("myColumn" & "1").AddComment [Cell("myRow", "1")).Value & " -$" & Cell("myRow","myColumn")_.value]
        End If
    Next
                
End Sub
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
2
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавить комментарии к диапазону

Option Explicit

Sub AddComments()

    Dim ws As Worksheet: Set ws = ActiveSheet ' improve!
    
    Dim lRow As Long: lRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Dim lCol As Long: lCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    Dim srg As Range: Set srg = ws.Range("A1").Resize(lRow, lCol)
    Dim Data As Variant: Data = srg.Value
    
    Dim r As Long, c As Long, n As Long
    Dim Comm As String
    
    For c = 2 To lCol
        For r = 4 To lRow
            If Len(Data(r, c)) > 0 Then
                n = n + 1
                Comm = Comm & n & ". " & Data(r, 1) & " - " _
                   & Format(Data(r, c), "$#,##0") & vbLf
            End If
        Next r
        If n > 0 Then
            With srg.Cells(1, c)
                .ClearComments
                .AddComment Left(Comm, Len(Comm) - 1)
            End With
            n = 0
            Comm = ""
        End If
    Next c
    
    MsgBox "Comments added.", vbInformation
    
End Sub

Спасибо!!! это то что мне нужно!! Но почему для добавления комментария не нужно указывать ячейку? Кроме того, что означает, если n > 0, то...... извините за вопрос новичка...

Dennis Tsang 19.03.2022 13:29
1.) Без оператора With вы можете использовать srg.Cells(1, c).ClearComments: srg.Cells(1, c).AddComment Left(Comm, Len(Comm) - 1), который охватывает ячейки от B1 до LastCol1 (For c = 2 to lCol). 2.)If Len(Data(r, c)) > 0 Then означает что если значение (в текущей строке текущего столбца) найдено, то. Если значение для текущего столбца не найдено, то n = 0 поэтому комментарий не будет добавлен, даже если у вас есть заголовок в этом столбце: n подсчитывает количество строк (на столбец), в которых есть запись.
VBasic2008 19.03.2022 16:58

Другие вопросы по теме