Excel:将表格行移动到另一个工作表';s表
对Excel编码不是很有经验,但我自己有一个不错的方法。但是我想不出这件事 希望使工作表自动化,以便当列E中的单元格设置为“人员配置”时,宏将整行从工作表a中的表格移动到工作表B中的表格。此时,宏将剪切和粘贴的行放在新工作表的表格下方,有时是下方20多行 我将非常感谢你的帮助。多谢各位Excel:将表格行移动到另一个工作表';s表,excel,vba,Excel,Vba,对Excel编码不是很有经验,但我自己有一个不错的方法。但是我想不出这件事 希望使工作表自动化,以便当列E中的单元格设置为“人员配置”时,宏将整行从工作表a中的表格移动到工作表B中的表格。此时,宏将剪切和粘贴的行放在新工作表的表格下方,有时是下方20多行 我将非常感谢你的帮助。多谢各位 Sub NtS() Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long Dim K As Lon
Sub NtS()
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("Clients Needing Staffed").UsedRange.Rows.Count
J = Worksheets("Clients Staffed").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Clients Staffed").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("Clients Needing Staffed").Range("E1:E" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Staffed" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Clients Staffed").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Staffed" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
复制和删除行(并集)
选项显式
小组委员会()
“常数
"来源:
Const srcName As String=“需要配备人员的客户”
Const srcFirstRow长度=2
Const srcLastRowCol作为Variant=“E”例如1或“A”、5或“E”。。。
常量srcCritCol作为Variant=“E”例如1或“A”、5或“E”。。。
Const srcriterias As String=“Staffed”
"目标"
Const tgtName As String=“客户已配备人员”
'以下参数必须为1或“A”,因为复制整行。
Const tgtFirstCol As Variant=“A”如1或“A”
Const tgtFirstRowCol As Variant=“A”如1或“A”
“其他的
将wb设置为工作簿:将wb=ThisWorkbook设置为具有此代码的工作簿。
"来源:
将src标注为工作表:设置src=wb.Worksheets(srcName)
最后一行的长度相同
srcLastRow=src.Cells(src.Rows.Count,srcLastRowCol).End(xlUp).Row
如果srcLastRow
复制和删除行(联合)
选项显式
小组委员会()
“常数
"来源:
Const srcName As String=“需要配备人员的客户”
Const srcFirstRow长度=2
Const srcLastRowCol作为Variant=“E”例如1或“A”、5或“E”。。。
常量srcCritCol作为Variant=“E”例如1或“A”、5或“E”。。。
Const srcriterias As String=“Staffed”
"目标"
Const tgtName As String=“客户已配备人员”
'以下参数必须为1或“A”,因为复制整行。
Const tgtFirstCol As Variant=“A”如1或“A”
Const tgtFirstRowCol As Variant=“A”如1或“A”
“其他的
将wb设置为工作簿:将wb=ThisWorkbook设置为具有此代码的工作簿。
"来源:
将src标注为工作表:设置src=wb.Worksheets(srcName)
最后一行的长度相同
srcLastRow=src.Cells(src.Rows.Count,srcLastRowCol).End(xlUp).Row
如果srcLastRow
不要像这样在错误恢复时使用。。。这隐藏了潜在的错误。如果你想让它自动运行,也许可以看看。而且我不喜欢用VBA复制和粘贴。在B页中,它的目的地是哪里?在第一个空位置?或者与工作表A中的行相同?除了@BigBen提到的内容之外,使用UsedRange
的问题在于它包含了该工作表中使用过的所有单元格(也就是说,工作表中最后一行的数据是10。但是您过去在第20行有一些内容。您的UsedRange
会将行数返回为20,即使肉眼看到有10行已填充)。尝试此操作以获取i
(和J
)的值:工作表(“需要人员的客户”)。单元格(工作表(“需要配备人员的客户