Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 90
Excel

Кнопка добавляет строку и автоматически прорисовывает границы. Но если добавить в послед строке,то неправильно добавляет

02.11.2020, 15:23. Показов 3674. Ответов 23

Студворк — интернет-сервис помощи студентам
Кнопка добавляет строку и автоматически прорисовывает границы. Но если добавить в послед строке,то неправильно добавляет.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub CommandButton9_Click()
ActiveSheet.Unprotect (159)
Application.Calculation = xlManual
Application.ScreenUpdating = False
With ActiveSheet
    If ActiveCell.Column > 3 And _
        ActiveCell.Row = Cells(ActiveCell.Row, "C").MergeArea(1).Row Then
            Dim FirstRow As Long: FirstRow = True
    End If
    .Rows(ActiveCell.Row & ":" & ActiveCell.Row + (ActiveCell.MergeArea.Rows.Count - 1)).Copy
    .Rows(ActiveCell.Row & ":" & ActiveCell.Row + (ActiveCell.MergeArea.Rows.Count - 1)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
    If FirstRow Then
        Application.DisplayAlerts = False
            Range(Cells(ActiveCell.Row, "C"), Cells(ActiveCell.Row + _
                Cells(ActiveCell.Row + 2, "C").MergeArea.Rows.Count + 1, "C")).Merge
            Range(Cells(ActiveCell.Row, "A"), Cells(ActiveCell.Row + _
                Cells(ActiveCell.Row, "C").MergeArea.Rows.Count - 1, "B")).Merge
        Application.DisplayAlerts = True
        Range("C8").Interior.Color = xlNone
    End If
End With
  With Range(Cells(Cells(ActiveCell.Row, "C").MergeArea(1).Row, "A"), _
                Cells(ActiveCell.Row + Cells(ActiveCell.Row, "C").MergeArea.Count - 1, "H")).Borders
        .LineStyle = xlContinuous: .ColorIndex = 0: .TintAndShade = 0: .Weight = xlThin
    End With
Call CommandButton35_Click
ActiveSheet.Protect Password:=159, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
                    AllowFormattingColumns:=True, AllowFormattingRows:=True
Application.ScreenUpdating = True
End Sub
Вложения
Тип файла: rar Табель МЕД.rar (596.0 Кб, 7 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2020, 15:23
Ответы с готовыми решениями:

Есть код который добавляет строку с объединенными ячейками, работает только если выбрана нижняя строка
Есть код который добавляет строку с объединенными ячейками, работает только если выбрана нижняя строка. Нужно чтобы когда выбрана верхняя...

Циклический поиск значения в колонке , if true = вносит изменения в строке найденой ячейки, else добавляет строку со своими значениями
Здравствуйте, имею 2 листа на 1 листе база магазина, на 2 листе прайс поставщика. Нужно из прайса поставщика(2 лист) взять первый артикул...

Функция, которая автоматически добавляет в Word информацию
Narod, pomogite nachinautschei ! Kak mojnno sdelat w WORD'e takuu functiu,kak , esli polsovatel otkriwaja word (t.e. w odnom sdanii,s...

23
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
03.11.2020, 12:16
Студворк — интернет-сервис помощи студентам
Sh0ck3r, я не учёл, что здесь объединенные ячейки, для них значение ячейки надо записывать так
Visual Basic
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 And Target.Row <= lastrow And Cells(Target.Row, Target.Column) = "" Then
ActiveSheet.Calculate
End If
End Sub
И, по-видимому, вы просто переписали код как было у меня, но я просто переменную Lastrow написал как привык, но у вас, наверняка, именно такой переменной (последняя строка таблицы) нет, а какая-то своя. Поэтому вместо Lastrow поставьте свою переменную, объявив её Public, либо мою объявите Public и занесите номер строки
Эта процедура должна быть в модуле листа
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 90
03.11.2020, 14:04  [ТС]
Спасибо, получилось) Только не пересчитывает когда вводишь время. Когда чистишь срабатывает
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
03.11.2020, 15:38
Лучший ответ Сообщение было отмечено Sh0ck3r как решение

Решение

Sh0ck3r, а вы свои первые посты прочитайте внимательно, там так и было в одном из них, а если вам надо пересчитывать при любом изменении, то просто в строке 3 Worksheet_Change уберите третье условие {And Cells(Target.Row, Target.Column) = ""}

Добавлено через 6 минут
Было так в вашем сообщении
Цитата Сообщение от Sh0ck3r Посмотреть сообщение
Нужно когда очищаешь ячейку от времени, чтобы был автоматический перерасчет
1
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 90
04.11.2020, 08:24  [ТС]
Спасибо большое)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2020, 08:24

Добавляет пустую строку в БД
Уже запарился, посмотрел кучу сайтов,делаю все по примеру - короче в элементарном запарился...Подскажите плз вот форма &lt;html&gt; ...

DatagridView добавляет не валидную строку из БД
Здравствуйте. У меня есть прога, через которую я добавляю данные в таблицу БД. В таблице есть ПК. Когда я ввожу в текстбокс повторяющийся...

INSERT INTO не добавляет строку в таблицу
Данный запрос не добавляет новой строки. Причем это происходит только в конкретной таблице products. В остальные таблицы всё успешно...

Добавляет в базу пустую строку
Здравствуйте, столкнулась с двумя проблемами: Мне надо сделать регистрацию. Вроде всё добавляет и я уже обрадовалась, что всё хорошо, но...

eof() Добавляет лишнюю строку
Всем привет, помогите пожалуйста. eof() добавляет лишнюю строку, как решить проблему или заменить. void viewFile() { int i, n =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru