Nano Hash - криптовалюты, майнинг, программирование

Простой макрос Excel VBA: ошибка 1004 метода класса Range не удалась

В Excel 2013:

Я создал модуль со следующим кодом:

Sub PasteFormatting()
    ActiveCell.PasteSpecial (xlPasteValues)
End Sub

В макросах я установил PasteFormatting как CTRL + V. Однако, когда я выбираю ячейку на своем листе и делаю «ctrl + v», я получаю сообщение об ошибке:

Run-time error '1004': PasteSpecial method of Range class failed

Это первый раз, когда я использую макросы, и нигде я не нашел ничего настолько простого, чтобы помочь мне.

Все, что я хочу сделать, это скопировать что-то в буфер обмена, зайти в Excel, выбрать ячейку и вставить, не меняя формат моей ячейки.

23.06.2017

Ответы:


1

Если вы ищете вставку без потери целевого форматирования, даже если используется Ctrl + V, просто поместите приведенный ниже код в объекты Microsoft Excel «ThisWorkbook» (т.е. не в какой-либо модуль).

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim UndoString As String, srce As Range
    On Error GoTo err_handler
    UndoString = Application.CommandBars("Standard").Controls("&Undo").List(1)
    If Left(UndoString, 5) <> "Paste" And UndoString <> "Auto Fill" Then
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Undo
    If UndoString = "Auto Fill" Then
        Set srce = Selection
        srce.Copy
        Target.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.SendKeys "{ESC}"
        Union(Target, srce).Select
    Else
        Target.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End If
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Exit Sub
err_handler:
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

Кстати, я не беру на себя ответственность за это, так как это широко доступно в Интернете.

23.06.2017
  • Не работает постоянно почему-то. Некоторые клипы, которые я вставляю, создают новую строку в ячейке, а ячейка пуста... 23.06.2017
  • Это может произойти, если внешнее содержимое состоит из таких функций, как перенос текста и т. д. Попробуйте нажать F2, а затем Ctrl + V. 23.06.2017

  • 2

    Ваш код работает. Вы сгенерируете такую ​​​​ошибку, если ничего не скопировано в буфер обмена перед выполнением кода. То же самое происходит, когда вы вставляете что-то без предварительного копирования, используя встроенный Ctrl+V. Если вы это сделаете, вы услышите звуковой сигнал. Чтобы обработать вашу ошибку и эмулировать такую ​​попытку:

    Sub PasteFormatting()
        On Error Resume Next
        ActiveCell.PasteSpecial (xlPasteValues)
        If Err.Number <> 0 Then Beep
        On Error GoTo 0
    End Sub
    
    23.06.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..