Привет, я хотел бы знать, как запустить VBA или макрос (или любой другой более простой способ), чтобы сместить значения только любого текущего выделения (варьируясь от одной ячейки в одной строке до нескольких ячеек и выборок по строкам, столбцам) в Excel, чтобы правый столбец или левый столбец.

Короче говоря, я готовлю прогнозный лист для практики архитектуры. Он работает так же, как проект Microsoft, с рядами временных шкал, отображаемых в нескольких ежемесячных столбцах. когда график проекта сдвигается, мне нужно иметь возможность выбрать строку данных, одну или несколько ячеек и переместить выбранные данные только на один столбец. Было бы здорово также удалить данные из предыдущего расположения ячейки (вырезать и вставить данные только по существу)

  1. Я не могу использовать копирование и вставку, так как это дублирует данные
  2. выделите и перетащите по краю ограничивающего прямоугольника с помощью четырехзвёздного курсора, который принимает формулы, соединения и форматирование

См. Прилагаемую фотографию - представьте, что две 50% -ые ассигнования в 19 апреля и 19 мая должны быть перенесены на начало июля. Я просто хочу выделить эти ячейки и сместить только данные - как будто с помощью клавиши со стрелкой вправо (или клавиши со стрелкой влево) перемещать данные только как тетрис.

С нетерпением ждем ваших предложений

2 ответа2

0

Является ли Paste Special тем, что вы ищете? Вот так выглядит раскрывающийся список «Вставить» в Excel 2007:

Мне непонятно, почему простое вырезание и вставка не будут работать для вас (может быть, оно будет содержать подсветку / форматирование ячейки? Но вы на самом деле не говорили, что это ваша проблема), поэтому я не уверен, что это решит вашу проблему, но он предлагает несколько вариантов для улучшения вашей пасты. Обратите внимание, что если вы не хотите дублировать данные, используйте вырезать (Ctrl+X) вместо копирования (Ctrl+C).

0

Вот ответ, хотя я думаю, что это принесет вам больше боли, чем удовольствия. Использование вырезать и вставить с Ctrl+X и Ctrl+V , вероятно, избавит от многих головных болей.

Сделайте два модуля в своей книге. Добавьте код ниже. Запустите module1, чтобы активировать обмен ключами, и Run module2, чтобы выключить его. При включении клавиши со стрелками вправо и влево ваши данные будут сдвинуты вправо или влево и уничтожат данные в старой ячейке. Формулы будут удалены. ИСПОЛЬЗОВАТЬ ВНИМАНИЕ.

Я рекомендую сделать кнопки для активации этих двух модулей.

Module1

Sub shifter()
    Application.OnKey "{LEFT}", "LShift"
    Application.OnKey "{RIGHT}", "RShift"

End Sub

Function LShift()
    Selection.Offset(0, -1).Value2 = Selection.Value2
    Selection.Value2 = ""
    Selection.Offset(0, -1).Select

End Function

Function RShift()
    Selection.Offset(0, 1).Value2 = Selection.Value2
    Selection.Value2 = ""
    Selection.Offset(0, 1).Select
End Function

Module2

Sub Endshifter()
    Application.OnKey "{LEFT}"
    Application.OnKey "{RIGHT}"

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .