Я создаю exсel файл для создания клиентской базы со скидочными данными(искал уже готовые excel файлы такого типа, но все они не подходят.) В общем я нашел один макрос который мне нужен, это суммирование веденный данных в одной и той же ячейке, этот макрос работает... И нашел второй макрос в интернете, это сохранение веденных данных ячейки в примечании, но этот макрос не работает... Пытался сам разобраться, но как-то сложно дается, помогите пожалуйста наладить макрос.
Макросы:
Dim iValue Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F2:F500")) Is Nothing Then Application.EnableEvents = False If Target = "" Then Target = 0 Application.EnableEvents = True Exit Sub End If If IsNumeric(Target) Then Target = Target + iValue Else MsgBox "Вы ввели нечисловое значение. Повторите ввод.", 48, "Ашипка, блин!" Target = iValue End If End If Application.EnableEvents = True End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("F2:F500")) Is Nothing Then iValue = Target Else iValue = 0 End If End Sub
Private Sub Worksheet_Change_2(ByVal Target As Range) Dim NewCellValue$, OldComment$ Dim cell As Range
'если ячейка не в отслеживаемом диапазоне, то выходим If Intersect(Target, Range("E2:E500")) Is Nothing Then Exit Sub
'перебираем все ячейки в измененной области For Each cell In Intersect(Target, Range("E2:E500")) If IsEmpty(cell) Then NewCellValue = "Ячейка очищена" 'фиксируем очистку ячейки Else NewCellValue = cell.Formula 'или ее содержимое End If On Error Resume Next
With cell OldComment = .Comment.Text & Chr(10) .Comment.Delete 'удаляем старое примечание (если было) .AddComment 'добавляем новое и вводим в него текст .Comment.Text Text:=OldComment & Application.UserName & " " & _ Format(Now, "MM.DD.YY h:MM:ss") & " : " & NewCellValue .Comment.Shape.TextFrame.AutoSize = True 'делаем автоподбор размера .Comment.Shape.TextFrame.Characters.Font.Size = 8 End With Next cell End Sub
Я создаю exсel файл для создания клиентской базы со скидочными данными(искал уже готовые excel файлы такого типа, но все они не подходят.) В общем я нашел один макрос который мне нужен, это суммирование веденный данных в одной и той же ячейке, этот макрос работает... И нашел второй макрос в интернете, это сохранение веденных данных ячейки в примечании, но этот макрос не работает... Пытался сам разобраться, но как-то сложно дается, помогите пожалуйста наладить макрос.
Макросы:
Dim iValue Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F2:F500")) Is Nothing Then Application.EnableEvents = False If Target = "" Then Target = 0 Application.EnableEvents = True Exit Sub End If If IsNumeric(Target) Then Target = Target + iValue Else MsgBox "Вы ввели нечисловое значение. Повторите ввод.", 48, "Ашипка, блин!" Target = iValue End If End If Application.EnableEvents = True End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("F2:F500")) Is Nothing Then iValue = Target Else iValue = 0 End If End Sub
Private Sub Worksheet_Change_2(ByVal Target As Range) Dim NewCellValue$, OldComment$ Dim cell As Range
'если ячейка не в отслеживаемом диапазоне, то выходим If Intersect(Target, Range("E2:E500")) Is Nothing Then Exit Sub
'перебираем все ячейки в измененной области For Each cell In Intersect(Target, Range("E2:E500")) If IsEmpty(cell) Then NewCellValue = "Ячейка очищена" 'фиксируем очистку ячейки Else NewCellValue = cell.Formula 'или ее содержимое End If On Error Resume Next
With cell OldComment = .Comment.Text & Chr(10) .Comment.Delete 'удаляем старое примечание (если было) .AddComment 'добавляем новое и вводим в него текст .Comment.Text Text:=OldComment & Application.UserName & " " & _ Format(Now, "MM.DD.YY h:MM:ss") & " : " & NewCellValue .Comment.Shape.TextFrame.AutoSize = True 'делаем автоподбор размера .Comment.Shape.TextFrame.Characters.Font.Size = 8 End With Next cell End Subazzamat
Добрый вечер. Макрос Worksheet_Change_2 не будет работать при изменении значений ячеек, имя должно быть Worksheet_Change. Однако макрос с таким именем уже существует, поэтому нужно оба макроса соединить в один.
Добрый вечер. Макрос Worksheet_Change_2 не будет работать при изменении значений ячеек, имя должно быть Worksheet_Change. Однако макрос с таким именем уже существует, поэтому нужно оба макроса соединить в один.i691198