Автор Тема: Выделение строк в исходной таблице и удаление строк со сдвигом  (Прочитано 241 раз)

Оффлайн Посетитель 21.03.2022

  • Посетитель форума
  • Сообщений: 2
Добрый день, уважаемые форумчане! Начинаю изучать VBA и нужна помощь.

При нажатии на ComboBox требуется выделение в исходном списке записи, значения полей которой появились в форме.
И еще. При нажатии кнопки нужно удаление записи, представленной в форме через Delete со сдвигом строк вверх.

Оффлайн Администратор

  • Administrator
  • Сообщений: 2017
Цитата:
При нажатии на ComboBox требуется выделение в исходном списке записи

Подцитата:
в исходном списке

Что вы подразумеваете под исходным списком? Что это вообще такое?

Оффлайн Посетитель 21.03.2022

  • Посетитель форума
  • Сообщений: 2
Мне была дана практическая работа, приложила файл. Задание от преподавателя следующее: дописать код, связанный с элементом управления ComboBox2, для выделения в исходном списке записи, значения полей которой появились в форме. Сделать кнопку Удаление записи, при нажатии на в исходном списке должна быть удалена запись, представленная в форме (использовать метод Deleat с параметром shift:=xlUp). Буду признательна за помощь!

Оффлайн Администратор

  • Administrator
  • Сообщений: 2017
Вот так можно выделить строку (в коде есть комментарий для кода, который выделяет строку).

Код
Private Sub ComboBox2_Change()
Dim Nr As Long, Nc As Long
TextBox1 = “”
TextBox2 = “”
TextBox3 = “”
If ComboBox2 <> “” Then
Dim Z As Variant
Z = ComboBox2.Value
ActiveSheet.Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Find(what:=Z, lookat:=xlWhole).Activate
'две предыдущие строки вводятся в одну линию
Nr = ActiveCell.Row
Nc = ActiveCell.Column

' Выделение строки.
Rows(Nr).Select

TextBox1.Value = ActiveSheet.Cells(Nr, Nc + 1).Value
TextBox2.Value = ActiveSheet.Cells(Nr, Nc + 2).Value
TextBox3.Value = ActiveSheet.Cells(Nr, Nc + 3).Value
End If
End Sub