我正在尝试将每个工作表中的一些行复制到名为"更新"的工作表中。在同一个工作簿中。
行定义在"Service Requests"
和"Renewals"
的关键字之间。
所以步骤1:定义那些行号,然后步骤2:将它们复制到续订表。
我遇到了第2步的问题,不知怎的,我无法解决如何在copy命令中使用rownumber1和rownumber2的问题。
任何帮助将不胜感激。谢谢!
Sub test()
Dim ws As Worksheet
Application.ScreenUpdating = False
Sheets("Renew").Activate
For Each ws In Worksheets
If ws.Name <> "Renew" Then
For i = 1 To 100
Dim rownumber1 As Integer
Dim rownumber2 As Integer
If Range("A" & i).Text = "Service Requests" Then
rownumber1 = i
ElseIf Range("A" & i).Text = "Renewals" Then
rownumber2 = i
End If
Next i
'copy rows between rownumber1 and rownumber2 to the renew sheet
ws.Rows("rownumber1:rownumber2").EntireRow.Copy
ActiveSheet.Paste Range("A65536").End(xlUp).Offset(1, 0)
End If
Next ws
End Sub
更新:
Sub test2()
Dim ws As Worksheet
Dim rownumber1 As Integer
Dim rownumber2 As Integer
Dim FoundCell As Excel.Range
Application.ScreenUpdating = False
Sheets("Renew").Activate
For Each ws In Worksheets
If ws.Name <> "Renew" Then
Set FoundCell = ws.Range("A:A").Find(what:="Service Requests", lookat:=xlWhole)
If Not FoundCell Is Nothing Then
rownumber1 = FoundCell.Row
End If
Set FoundCell = ws.Range("A:A").Find(what:="Renewals", lookat:=xlWhole)
If Not FoundCell Is Nothing Then
rownumber2 = FoundCell.Row
End If
'copy renewals to the renewalsummary
ws.Rows(rownumber1 & ":" & rownumber2).EntireRow.Copy
ActiveSheet.Paste Range("A65536").End(xlUp).Offset(1, 0)
End If
Next ws
End Sub
答案 0 :(得分:2)
您正在寻找的是:
SELECT P.plan_id
,E.Name
,P.duration
FROM Plan P
LEFT JOIN Emp E
ON P.emp_id = E.emp_id
LEFT JOIN PlanEmp PE
ON P.plan_id = PE.plan_id
尽管如此,您的代码还需要考虑其他一些事项。这可能是一项正在进行的工作,所以我只回答了你的问题,但是:
回复编辑
看起来很不错。最重要的是它有效。虽然我会改变这个:
ws.Rows(rownumber1 & ":" & rownumber2).EntireRow.Copy
到此:
ws
硬编码的值不是非常适合未来的,它会查看工作表的最后一行(无论可能是什么)。如果您的任何工作表开始达到最大行,则需要执行此操作:
ActiveSheet.Paste Range("A65536").End(xlUp).Offset(1, 0)
但这可能会在未来发展,那时你可能会超出Excel。