VBA вставить в следующую пустую строку - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать лист, который я могу заполнить, когда я нажимаю кнопку, он копирует информацию из поля и вставляет (и транспонирует) на вкладку Rawdata, затем удаляет информацию из панели инструментов и сохраняет файл.,

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

Sub Macro5()
'
' Macro5 Macro
'

'
Range("C3:C8").Select
Selection.Copy
Sheets("RawData").Select
Cells(Range("C1000000").End(xlUp).Row + 1, 3).PasteSpecial Paste:=xlValues, 
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Dasboard").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Range("C3:C8").Select
Selection.ClearContents
End Sub

любая помощь здесь будет принята с благодарностью.

Мне нужно, чтобы транспонировать пасту в столбцах A: F

спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Попробуйте прямую передачу значения без выбора.

Sub Macro5()

    dim ws as worksheet

    set ws = workSheets("RawData")

    with worksheets("Dasboard").Range("C3:C8")

        ws.cells(rows.count, "A").end(xlup).offset(1, 0).resize(.columns.count, .rows.count) = _
          application.transpose(.value)
        .clearcontents
        .parent.parent.save

    end with

End Sub
0 голосов
/ 05 октября 2018

Рекомендую прочитать Как избежать использования Select в Excel VBA .Использование .Select является очень плохой практикой и рано или поздно приводит ко многим ошибкам:

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

Option Explicit

Public Sub CopyData()
    'define source range
    Dim SourceRange As Range
    Set SourceRange = ThisWorkbook.Worksheets("Dashboard").Range("C3:C8")

    'find next free cell in destination sheet
    Dim NextFreeCell As Range
    Set NextFreeCell = ThisWorkbook.Worksheets("RawData").Cells(Rows.Count, "A").End(xlUp).Offset(RowOffset:=1)

    'copy & paste
    SourceRange.Copy
    NextFreeCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

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