Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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,我见过一些示例,但它们一直在使用.Select和.Activate。我正在努力学习如何不再使用它们,因为每个人都说你应该尽量远离它们 我想取一行,然后把它复制到另一张纸上的第一个空白行。我很接近,但就是不起作用 UsdRws = Range("A" & Rows.Count).End(xlUp).Row With Sheets("Totals by Department") .Range("A1:Z" & UsdRws).autofilter Field:=1, Cr

我见过一些示例,但它们一直在使用.Select和.Activate。我正在努力学习如何不再使用它们,因为每个人都说你应该尽量远离它们

我想取一行,然后把它复制到另一张纸上的第一个空白行。我很接近,但就是不起作用

UsdRws = Range("A" & Rows.Count).End(xlUp).Row


With Sheets("Totals by Department")
    .Range("A1:Z" & UsdRws).autofilter Field:=1, Criteria1:="1450"
    .Range("A2:Z" & UsdRws).SpecialCells(xlCellTypeVisible).EntireRow.COPY
End With


Set NextRow = Range("A" & Sheets(2).UsedRange.Rows.Count + 1)


Sheets(2).NextRow.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Set NextRow = Nothing
第一部分复制得很好,我真的需要你帮我把它粘贴到另一张纸上。我还将采纳其他关于清理代码的建议。就像我说的,我正在努力学习写得更好。第二部分很混乱,因为我一直在添加和编辑它,但现在我迷路了

您的“NextRow”对象是一个范围对象,但您调用它时,就好像它是图纸(2)的方法或属性一样

试着卸下床单(2)。从下一排开始

Set NextRow = Sheets(2).Range("A" & Sheets(2).UsedRange.Rows.Count + 1)
NextRow.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
您的“NextRow”对象是一个范围对象,但您调用它时,就好像它是图纸(2)的方法或属性一样

试着卸下床单(2)。从下一排开始

Set NextRow = Sheets(2).Range("A" & Sheets(2).UsedRange.Rows.Count + 1)
NextRow.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
这可能是你想要的

With Sheets("Totals by Department")
    UsdRws = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("A1:Z" & UsdRws).autofilter Field:=1, Criteria1:="1450"
    .Range("A2:Z" & UsdRws).SpecialCells(xlCellTypeVisible).EntireRow.COPY
End With

Set NextRow = Sheets(2).Range("A" & Sheets(2).UsedRange.Rows.Count + 1)

NextRow.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Set NextRow = Nothing   
这可能是你想要的

With Sheets("Totals by Department")
    UsdRws = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("A1:Z" & UsdRws).autofilter Field:=1, Criteria1:="1450"
    .Range("A2:Z" & UsdRws).SpecialCells(xlCellTypeVisible).EntireRow.COPY
End With

Set NextRow = Sheets(2).Range("A" & Sheets(2).UsedRange.Rows.Count + 1)

NextRow.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Set NextRow = Nothing   

看起来它就贴在我复制的地方。它不会转到另一张纸上。我真的必须选择它吗?还是激活它?我刚刚编辑了这个,再试一次。您的原始代码无法限定NextRow所属的工作表,因此Excel会自动将其设置为ActiveSheet。通过将其限定为工作表(2)。范围,它将复制到正确的工作表。谢谢!工作得很好!就在我即将下班之前。现在我不会整晚都在想它了,哈伊特看起来就贴在我复制的地方。它不会转到另一张纸上。我真的必须选择它吗?还是激活它?我刚刚编辑了这个,再试一次。您的原始代码无法限定NextRow所属的工作表,因此Excel会自动将其设置为ActiveSheet。通过将其限定为工作表(2)。范围,它将复制到正确的工作表。谢谢!工作得很好!就在我即将下班之前。现在我不会整晚都在想这个了哈哈