Список VBA с относительными ссылками - PullRequest
0 голосов
/ 16 ноября 2018

У меня проблема со списками.На скриншотах ниже вы можете видеть, что у меня есть «Шаблоны», в которых вы можете заполнить имя сценария (здесь: 1, 2, 3) и выбрать пострадавших для этого сценария с помощью списка.Окно списка должно появиться, когда активна ячейка рядом с ячейкой «Затронутые люди» (B5).После выбора затронутых людей и выбора другой ячейки, затем B5, выбранные параметры должны быть вставлены в B5.

Что мне уже удалось сделать, так это заставить код работать для Listbox1.Теперь проблема заключается в вставке нового шаблона сценария (и, следовательно, также нового списка) через макрос.Я не знаю, как изменить фиксированные ссылки в коде на относительные ссылки, чтобы код работал для каждого нового списка.Если у вас есть идея, как решить эту проблему, я был бы очень признателен!:)

[1) screenshot][1]
[2) screenshot][2]
[3) screenshot][3]
[4) screenshot][4]

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim aCR As Integer      ' aCR= Row of the ActiveCell
Dim aCC As Integer      'aCC =Column of the ActiveCell 
Dim m As Integer
Dim c As String
aCR = ActiveCell.Row
aCC = ActiveCell.Column
m = aCR Mod 5
If m = 0 Then
            If aCC = 2 Then
                Listbox1.Visible = True             ‘ Problem! Here the Listbox should be made visible which is above the ActiveCell (not visible yet!) !  No relative reference here
End If 
End If
End Sub

Sub ListBox1_LostFocus()                                                     ‘ Problem! No relative reference here
Dim str_selected_items As String, i As Long
With Listbox1                                                                  ‘ Problem! No relative reference here
    For i = 0 To .ListCount - 1
                 If .Selected(i) Then
                                str_selected_items = str_selected_items & "- " & .List(i) & Chr(10)
                     End If
    Next i
End With
If Len(listitems_spalte_1) > 0 Then                                                      
Range("B5").Value = Left(str_selected_items, Len(str_selected_items) - 1)       ‘ ‘ Problem! No relative reference here 
Else
Range("B5") = ""         ‘ Problem! No relative reference here 
End If
Listbox1.Visible = False            ‘ Problem! No relative reference here
End Sub

  [1]: https://i.stack.imgur.com/Og1Lr.png
  [2]: https://i.stack.imgur.com/PmzK3.png
  [3]: https://i.stack.imgur.com/4QdWh.png
  [4]: https://i.stack.imgur.com/i2ml6.png
...