VBA-копировать и вставлять специальные на основе выпадающего выбора с помощью командной кнопки - PullRequest
0 голосов
/ 14 апреля 2020

Мне интересно, можете ли вы помочь мне с моим запросом, я полный любитель VBA.

Я пытаюсь написать кусок VBA для копирования и вставки значений в диапазоне ячеек в отдельную рабочую таблицу, начиная с указанного c столбца, когда я нажимаю командную кнопку.

Изобразите это

У меня есть мастер-лист, который просматривает данные и возвращает загрузку значений для график работает с 20 марта по De c -20

У меня также есть выпадающий список, который позволит мне выбрать новый месяц. 20 июля, скажем, я хочу нажать кнопку, которая будет копировать и вставьте эти данные в новую временную шкалу, на отдельном листе, начиная с месяца, выбранного в раскрывающемся списке.

Я взял некоторый код, который я создал для чего-то другого, и исправил его, чтобы попытаться заставить его работать для этого.

Любая помощь будет оценена. Проигнорируйте остальную ручную запись, это наследие от предыдущей итерации.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim controlRng, nRng As Range
    Set controlRng = Range("AD12")  ' This the range of cells which I have defined to be my dropdown cells.
    Set nRng = Intersect(controlRng, Target)  ' Find out if any of the dropdown cells have been changed
    lastrow = Sheets("Planning").Range("A65536").End(xlUp).Row + 1

    If nRng Is Nothing Then Exit Sub  ' None of the dropdown cells have changed so no need to do anything further

    If Target.Value = "Apr-20" Then
        Range("AH10:AH30").Copy
        Sheets("Planning").Range("C" & lastrow).PasteSpecial xlPasteValues ' Copy and paste values to next available rows in destination sheet

    ElseIf Target.Value = "May-20" Then
          Range("AH10:AH30").Copy
          Sheets("Planning").Range("D" & lastrow).PasteSpecial xlPasteValues ' Copy and paste values to next available rows in destination sheet


    ElseIf Target.Value = "Jun-20" Then
          Range("AH10:AH30").Copy
          Sheets("Planning").Range("E" & lastrow).PasteSpecial xlPasteValues ' Copy and paste values to next available rows in destination sheet 

    ElseIf Target.Value = "Jul-20" Then
         Range("AH10:AH30").Copy
         Sheets("Planning").Range("F" & lastrow).PasteSpecial xlPasteValues ' Copy and paste values to next available rows in destination sheet

    ElseIf Target.Value = "Aug-20" Then
          Range("AH10:AH30").Copy
         Sheets("Planning").Range("G" & lastrow).PasteSpecial xlPasteValues ' Copy and paste values to next available rows in destination sheet
    Else
        'Manual entry
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...