Vba 将一页中的行粘贴到另一页中的第一个空白行
我见过一些示例,但它们一直在使用.Select和.Activate。我正在努力学习如何不再使用它们,因为每个人都说你应该尽量远离它们 我想取一行,然后把它复制到另一张纸上的第一个空白行。我很接近,但就是不起作用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
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)。范围,它将复制到正确的工作表。谢谢!工作得很好!就在我即将下班之前。现在我不会整晚都在想这个了哈哈