У меня есть код для выполнения 2-х вещей: в первую очередь он сортирует элементы из списков данных, которые находятся в Листе 2 с «,» в желаемый диапазон ячеек, расположенных в Листе 1. Также, если пользователь выбирает один и тот же элемент, он удаляет его из выбранной ячейки.VBA excel Target.Address = Диапазон ячеек
Другой вариант кода - когда пользователь выбирает ячейки выпадающих списков (который находится в D2: F325, он должен увеличиваться на 100%, чтобы видеть элементы в списках (поскольку размеры его шрифта слишком малы, чтобы видеть)
в приведенном ниже коде работает почти идеально Потому, что масштабирование только тогда, когда я выбрать одну ячейку от требуемого диапазона:.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then GoTo exitHandler
If Target.Address = Range("XYZ").Address Then
ActiveWindow.Zoom = 100
[A5000] = "zoomed"
ElseIf [A5000] = "zoomed" Then
'Otherwise set the zoom to original
ActiveWindow.Zoom = 70
[A5000].ClearContents
End If
exitHandler:
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Dim strVal As String
Dim i As Long
Dim lCount As Long
Dim Ar As Variant
On Error Resume Next
Dim lType As Long
If Target.Count > 1 Then GoTo exitHandler
lType = Target.Validation.Type
If lType = 3 Then
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
Target.Value = newVal
If oldVal = "" Then
'do nothing
Else
If newVal = "" Then
'do nothing
Else
On Error Resume Next
Ar = Split(oldVal, ", ")
strVal = ""
For i = LBound(Ar) To UBound(Ar)
Debug.Print strVal
Debug.Print CStr(Ar(i))
If newVal = CStr(Ar(i)) Then
'do not include this item
strVal = strVal
lCount = 1
Else
strVal = strVal & CStr(Ar(i)) & ", "
End If
Next i
If lCount > 0 Then
Target.Value = Left(strVal, Len(strVal) - 2)
Else
Target.Value = strVal & newVal
End If
End If
End If
End If
exitHandler:
Application.EnableEvents = True
End Sub
«XYZ» это имя ячейки D2 причины я попытался назвал это диапазон для выбора с этой функцией, но он не сработал.
Наконец, как Target.Adress можно выбрать весь диапазон D2: F325
Заранее спасибо
У вас есть эта строка в начале вашего кода 'If Target.Count> 1 Затем GoTo exitHandler', если вы выберете более 1 ячейки, вы выйдете из' Sub' –