Ребят, подскажите в чем причина, если копирую данные внутри листа и пытаюсь вставить на этот же лист, то вставка не работает?
если копирую из "внешней среды" все гуд.
пример кода
если копирую из "внешней среды" все гуд.
пример кода
| Код |
|---|
Private Sub Worksheet_Change(ByVal rg As Range)
Dim Nv, Ov, Lv
If Intersect(rg, Range("O:O", "S:T")) Is Nothing Or rg.Count > 1 Then Exit Sub
If Len(rg) = 0 Then Exit Sub
Application.EnableEvents = False: Nv = rg: Application.Undo: Ov = rg
If Ov = Nv Then rg = "": Application.EnableEvents = True: Exit Sub
If Len(Ov) = 0 Then
rg = Nv
Else
Lv = NvInOv(CStr(Nv), Ov): If Lv = False Then rg = rg & ";" & Nv Else rg = Lv
End If
Application.EnableEvents = True
End Sub
Function NvInOv(Nv$, Ov)
Dim v, i&
v = Split(Ov, ";"): NvInOv = False
For i = LBound(v) To UBound(v)
If v(i) = Nv Then
v(i) = Empty: NvInOv = Replace(Join(v, ";"), ";;", ";"): v = Split(NvInOv, ";")
If v(UBound(v)) = "" Then NvInOv = Left(NvInOv, Len(NvInOv) - 1)
If Left(NvInOv, 1) = ";" Then NvInOv = Right(NvInOv, Len(NvInOv) - 1)
Exit Function
End If
Next
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myRange As Range
Set myRange = Worksheets("Заявка на подключение").Range("A:O")
If Application.Intersect(Target, myRange) Is Nothing Then
Application.CellDragAndDrop = False
Else
Application.CellDragAndDrop = True
End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("M:T")) Is Nothing Then Cancel = True
End Sub
|