Страницы: 1
RSS
Вставить без форматирования, выдает ошибку
 
Пытаюсь убрать формат при вставке, код начинает ругаться

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Вставляем, если был двойной щелчок по ячейке
    If Not Intersect(Target, Range("C2:I999")) Is Nothing Then
        Application.EnableEvents = False
        Cancel = True
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
        False, NoHTMLFormatting:=True
        Application.EnableEvents = True
        Cancel = True
    End If
    If Not Intersect(Target, Range("A2:A999")) Is Nothing Then
        Application.EnableEvents = False
        Cancel = True
            ActiveCell.Rows("1:1").EntireRow.Delete Shift:=xlUp
        Application.EnableEvents = True
    End If
End Sub
Изменено: SHARP - 24.10.2014 18:57:56
 
вообще ,чтобы вставить без форматирования,то принцип такой
Код
Range("A1").PasteSpecial xlPasteValues 
 
и на это ругается;(
 
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Вставляем, если был двойной щелчок по ячейке
    If Not Intersect(Target, Range("C2:I999")) Is Nothing Then
        Application.EnableEvents = False
        Cancel = True
        Target.PasteSpecial xlPasteValues
        Application.EnableEvents = True
    End If
    If Not Intersect(Target, Range("A2:A999")) Is Nothing Then
        Application.EnableEvents = False
        Cancel = True
            ActiveCell.Rows("1:1").EntireRow.Delete Shift:=xlUp
        Application.EnableEvents = True
    End If
End Sub
 
Run-time error '1004':
метод pastespecial из класса worksheet завершен неверно
Изменено: SHARP - 24.10.2014 22:06:37
 
sharp а что вы  копируете?
 
SHARP, чтобы что-то вставить, сначала это что-то нужно скопировать))
 
Копирую текст с сайта, он имеет свой формат, от которого и пытаюсь избавиться
Изменено: SHARP - 24.10.2014 22:41:05
 
нельзя использовать один оператор,тк вставляемые данные имеют разный формат, а в параметре Format указан фиксированный формат, поэтому и возникает ошибка.
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Вставляем, если был двойной щелчок по ячейке
    If Not Intersect(Target, Range("C2:I999")) Is Nothing Then
        Cancel = True
        Application.EnableEvents = False
        Select Case Application.ClipboardFormats(2)
            Case 7
                ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
            Case 44
                ActiveSheet.PasteSpecial Format:="Текст в кодировке Unicode"
        End Select
        Application.EnableEvents = True
    End If
End Sub

еще обходной путь. основано на том,что вставляемый текст выделяется
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Вставляем, если был двойной щелчок по ячейке
    If Not Intersect(Target, Range("C2:I999")) Is Nothing Then
        Cancel = True
        Application.EnableEvents = False
        ActiveSheet.Paste
        Application.EnableEvents = True
        Selection.ClearFormats
    End If
End Sub
Изменено: Karataev - 25.10.2014 09:10:05
 
Karataev, СПАСИБО
Второй вариант не прошел испытания, провалился на повторной вставке, при которой КОД уже не мог вытянуть от туда информацию.
А вот первый вариант работает стабильно.

Еще раз спасибо за активное участие в моем проекте.
Страницы: 1
Наверх