Vba 基于列A将整行移动到偏移(-1,4)
我目前有一个很大的Excel文件,其中的数据与相应的标题不一致 为了解决这个问题,我需要剪切并粘贴列“A”包含“计划”的所有行,向上一行,向右四列。我有几千行需要移动(使用VBA)。我一直在拼凑一些代码,但没有用(我对VBA的知识有限) 下面显示了我正在处理的数据的快照。我需要把黄色的那排移到红色的区域。顶部的绿色行是手动进行更改后的外观示例。希望这段代码能在整个工作表中循环,并给我与他们尊敬的标题对齐的数据 (顺便说一句,需要移动的黄色数据行有60列宽,图片仅显示工作表的一个小快照)Vba 基于列A将整行移动到偏移(-1,4),vba,excel,Vba,Excel,我目前有一个很大的Excel文件,其中的数据与相应的标题不一致 为了解决这个问题,我需要剪切并粘贴列“A”包含“计划”的所有行,向上一行,向右四列。我有几千行需要移动(使用VBA)。我一直在拼凑一些代码,但没有用(我对VBA的知识有限) 下面显示了我正在处理的数据的快照。我需要把黄色的那排移到红色的区域。顶部的绿色行是手动进行更改后的外观示例。希望这段代码能在整个工作表中循环,并给我与他们尊敬的标题对齐的数据 (顺便说一句,需要移动的黄色数据行有60列宽,图片仅显示工作表的一个小快照) 快速、肮
快速、肮脏、未经测试的解决方案。试试看
Dim cel as range
For each cel in Range("A1:A" & Range("A1").end(xldown).row
if cel.value = "Planned:" then
cel.resize(1,60).cut
cel.offset(-1,4).pastespecial xlpasteall
end if
next cel
您可以尝试此方法(不使用VBA)
Ctrl+g
,然后单击Special
按钮空白
,单击确定
E3
中,公式为=A4
),然后按Ctrl+Enter
填充所有公式计划:
筛选列A并删除行我知道这有一个缺点,在步骤6中,如果您的数据非常大,Excel可能无法正确删除筛选的行此简短过程应在将现在空的“计划”行向上移动时处理异常导入数据
Sub fix_planned()
Dim rw As Long
With Worksheets("Sheet1")
For rw = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If LCase(Left(.Cells(rw, 1).Value2, 8)) = "planned:" Then
.Range(.Cells(rw, 1), .Cells(rw, Columns.Count).End(xlToLeft)).Copy _
Destination:=.Cells(rw, 1).Offset(-1, 4)
.Rows(rw).EntireRow.Delete
End If
Next rw
End With
End Sub
建议您修复数据源,这样您就不必“事后”重复修复数据。看起来您的导入数据中有换行符。您是否正在为将来修改数据提要?如果您确实一直在“拼凑一些代码…”,那么我建议您发布部分或全部代码(工作与否),以便我们能够评估可能存在的任何未回答的问题。