Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA粘贴到下一个空行_Vba_Excel - Fatal编程技术网

VBA粘贴到下一个空行

VBA粘贴到下一个空行,vba,excel,Vba,Excel,我正在尝试创建一个可以填写的工作表,当我单击按钮时,它会将框中的信息复制并粘贴和转换到Rawdata选项卡,然后从仪表板中删除信息并保存文件 我已经录制了一个简单的宏来为我做这件事,但问题是我不知道如何让它将数据添加到下一个空闲行,它只是替换了已经存在的信息,这是我用来尝试实现它的代码 Sub Macro5() ' ' Macro5 Macro ' ' Range("C3:C8").Select Selection.Copy Sheets("RawData").Select Cells(Ran

我正在尝试创建一个可以填写的工作表,当我单击按钮时,它会将框中的信息复制并粘贴和转换到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列中的粘贴

谢谢你

我推荐你阅读。使用.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
我建议你读书。使用.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

尝试不选择的直接值传输

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

尝试不选择的直接值传输

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

Dasboard是一个打字错误吗?@Jeeped,可能不是,看起来太像记录的代码了。@Luuklag-是的,我在下面的回复中就是这样离开的,正是因为这个原因。也许op的猫在写问题的时候在键盘上走。Dasboard是打字错误吗?@Jeeped,可能不是,看起来太像记录的代码了。@Luuklag-是的,我在下面的回答中就是这样离开的,正是因为这个原因。也许是op的猫在作题时踩到了键盘。@PEH这个问题解决了,你太棒了,非常感谢much@KetihCarpenter如果这解决了您的问题,请将答案标记为解决方案:@PEH this修复了它,你太棒了谢谢你much@KetihCarpenter如果这解决了您的问题,请将答案标记为解决方案:worksheet.parent.parent最终指的是什么,应用程序?它不是worksheet.parent.parent,而是worksheet.RangeC3:C8.parent.parent。第一个父级引用单元格区域的工作表,第二个引用工作簿。Workplace.parent.parent最终引用的是什么,应用程序?它不是Workplace.parent.parent,而是Workplace.RangeC3:C8.parent.parent。第一个父对象引用单元格区域的工作表,第二个父对象引用工作簿。