Использование Target.Column каждый n-й столбец - PullRequest
0 голосов
/ 02 мая 2020
Private Sub Worksheet_Change(ByVal Target As Range)
'Code by Sumit Bansal from https://trumpexcel.com
' To allow multiple selections in a Drop Down List in Excel (without repetition)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Column = 6 Then
  If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
  Else: If Target.Value = "" Then GoTo Exitsub Else
    Application.EnableEvents = False
    Newvalue = Target.Value
    Application.Undo
    Oldvalue = Target.Value
      If Oldvalue = "" Then
        Target.Value = Newvalue
      Else
        If InStr(1, Oldvalue, Newvalue) = 0 Then
            Target.Value = Oldvalue & ", " & Newvalue
      Else:
        Target.Value = Oldvalue
      End If
    End If
  End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub••••ˇˇˇˇ

Я пытаюсь использовать Target.Column, чтобы начать с 6-го столбца, и использовать один и тот же код для каждых 3-х столбцов после, так что в основном 6, 9, 12, 15, 18 и т. Д. c.

If Target.Column = 6 Then

Как бы я go о реализации этого здесь

1 Ответ

1 голос
/ 02 мая 2020

Вы можете использовать функцию и проверить правильный номер столбца через If correctCol(target.Column) Then:

Function correctCol(ByVal col As Long, Optional floor As Long = 6) As Boolean
correctCol = (col Mod 3 = 0) * (col >= floor)
End Function

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...