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