Я хочу скопировать диапазон ячеек и вставить их на другой лист в зависимости от выпадающего списка и активировать с помощью кнопки - PullRequest
0 голосов
/ 22 мая 2019

У меня есть кнопка Экспорт на лист, но я не могу заставить ее работать правильно. Я выбираю правильные ячейки для копирования, но не могу затем перенести их на выбранный лист, который отображается в раскрывающемся списке в ячейке A1, затем мне также нужно вставить его в следующую доступную строку на этом конкретном листе. Проблема в том, что я не могу просто перечислить листы в VBA, так как список в раскрывающемся списке меняется. Я пробовал несколько способов безуспешно. Если бы кто-то мог помочь, было бы здорово

Sub Button2_Click()

    Worksheets("Sheet1").Range("a2:x2").Copy
    ActiveSheet.Paste Destination:=Worksheets("Sheet1!A1").Range("a:x")

End Sub

Ответы [ 3 ]

0 голосов
/ 22 мая 2019

Вот еще немного кода, который я пробовал для этой проблемы, но все еще не работает.

Sub ExportButton1 () ' 'ExportButton1 Macro 'Экспортирует данные в список сотрудников из выпадающего списка ' Сочетание клавиш: Ctrl + e ' ActiveWorkbook.Save End Sub Private Sub CommandButton1_Click (цель ByVal в качестве диапазона) Application.ScreenUpdating = False Dim copySheet As Worksheet Dim pasteSheet As Worksheet

Set copySheet = Worksheets ("Data") «При ошибке возобновить следующее «Если нет (Application.Intersect (Range (« H2 »), Target) - ничего») _ _ 1005 *

Set pasteSheet = Worksheets (ActiveSheet.Range ("H2"))

copySheet.Range ( "G5: AA5") Copy. pasteSheet.Cells (Rows.Count, 1) .End (xlUp) .Offset (1, 0) .PasteSpecial xlPasteValues Application.CutCopyMode = False Application.ScreenUpdating = True End Sub

0 голосов
/ 23 мая 2019

«Я нашел другой способ обойти проблему, чтобы скопировать ячейки вставки на определенный лист, а затем на« лист персонала »формула в таблице для проверки столбца. Значение в таблице данных для имени и только« транспонировать эти строки

Sub Macro1()
Range("A2:J2").Select
Selection.Copy
Sheets("Sheet3").Select
Range("A60000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Sheets("Sheet1").Select

End Sub

'Формула на листе персонала - = IF (Лист3! A: A = "Столбец1", Лист3! $ B: $ B, "")

0 голосов
/ 22 мая 2019

вам нужно изменить имя листа в функции вашего листа.

Это может сработать.

Sub Button2_Click()

'Copying the Data
Worksheets("Sheet1").Range("a2:x2").Copy

'Pasting the data
' What we were missing was to pass the name of the tab dynamically. Now this code will pick up the name that appears in the Cell A1.

ActiveSheet.Paste Destination:=Worksheets(Worksheets("Sheet1").Range("A1").value).Range("A1")

End Sub

Также в диапазоне вставки вам нужно только поместить первый диапазон ячейки для вставкиценности.

Чтобы вставить транспонированные значения, проверьте функцию PasteSpecial со свойством Transpose, установленным в True.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...