在 Excel 2003 中是否有宏或方法可以有条件地将行从一个工作表复制到另一个工作表?
我通过 Web 查询将 SharePoint 中的数据列表提取到 Excel 中的空白工作表中,然后我想将特定月份的行复制到特定工作表(例如,将 SharePoint 工作表中的所有 7 月数据复制到7 月工作表、从 SharePoint 工作表到 6 月工作表的所有 6 月数据等)。
样本数据
Date - Project - ID - Engineer
8/2/08 - XYZ - T0908-5555 - JS
9/4/08 - ABC - T0908-6666 - DF
9/5/08 - ZZZ - T0908-7777 - TS
这不是一次性的练习。我正在尝试构建一个仪表板,以便我的老板可以从 SharePoint 中提取最新数据并查看每月结果,因此它需要能够始终执行此操作并干净地组织它。
这是可行的:它的设置方式是我从直接窗格中调用它,但是您可以轻松创建一个 sub() ,它将每月调用一次 MoveData,然后只需调用该 sub。
您可能需要添加逻辑以在全部复制后对每月数据进行排序
Public Sub MoveData(MonthNumber As Integer, SheetName As String)
Dim sharePoint As Worksheet
Dim Month As Worksheet
Dim spRange As Range
Dim cell As Range
Set sharePoint = Sheets("Sharepoint")
Set Month = Sheets(SheetName)
Set spRange = sharePoint.Range("A2")
Set spRange = sharePoint.Range("A2:" & spRange.End(xlDown).Address)
For Each cell In spRange
If Format(cell.Value, "MM") = MonthNumber Then
copyRowTo sharePoint.Range(cell.Row & ":" & cell.Row), Month
End If
Next cell
End Sub
Sub copyRowTo(rng As Range, ws As Worksheet)
Dim newRange As Range
Set newRange = ws.Range("A1")
If newRange.Offset(1).Value <> "" Then
Set newRange = newRange.End(xlDown).Offset(1)
Else
Set newRange = newRange.Offset(1)
End If
rng.Copy
newRange.PasteSpecial (xlPasteAll)
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)