Excel 根据数组抛出错误重新排列列的宏
我一直在寻找这样的宏很长一段时间 宏抛出1004错误,Excel 根据数组抛出错误重新排列列的宏,excel,vba,Excel,Vba,我一直在寻找这样的宏很长一段时间 宏抛出1004错误,列(l+1)。Insert以黄色突出显示 This selection is not valid Copy and past areas cannot overlap unless they'er the same size and shape 有107行,可能代码覆盖了整个列,而不仅仅是107行? 不知道该怎么解决这个问题 谢谢 Sub f() Application.DisplayAlerts = False Application.
列(l+1)。Insert
以黄色突出显示
This selection is not valid
Copy and past areas cannot overlap unless they'er the same size and shape
有107行,可能代码覆盖了整个列,而不仅仅是107行?
不知道该怎么解决这个问题
谢谢
Sub f()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error GoTo Skipit
HeaderNames = Array("RespID", "Subject", "Tag", "Strengths Comments", "Improvement Comments")
For l = 0 To UBound(HeaderNames)
Columns(Rows(1).Find(HeaderNames(l), , xlValues, xlWhole).Column).Cut
Columns(l + 1).Insert
Skipit:
Next
ActiveSheet.UsedRange.Offset(, l).ClearContents
Application.ScreenUpdating = True
Application.DisplayAlerts = True
On Error GoTo 0
End Sub
不能在同一位置复制和粘贴。 这应该起作用:
Sub f()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error GoTo Skipit
Dim HeaderNames, l As Long, colFrom As Long
HeaderNames = Array("RespID", "Subject", "Tag", "Strengths Comments", "Improvement Comments")
For l = 0 To UBound(HeaderNames)
colFrom = Rows(1).Find(HeaderNames(l), , xlValues, xlWhole).Column
If l + 1 <> colFrom Then Columns(colFrom).Cut: Columns(l + 1).Insert
Skipit:
Next
ActiveSheet.UsedRange.Offset(, l).ClearContents
Application.ScreenUpdating = True
Application.DisplayAlerts = True
On Error GoTo 0
End Sub
subf()
Application.DisplayAlerts=False
Application.ScreenUpdating=False
关于GoTo Skipit的错误
朦胧的头颅,像我一样长,像我一样长
HeaderNames=数组(“响应”、“主题”、“标记”、“优势评论”、“改进评论”)
对于l=0至UBound(前端名称)
colFrom=行(1).查找(HeaderNames(l),xlValues,xlother).列
如果是l+1列,则为列(colFrom)。剪切:列(l+1)。插入
滑雪场:
下一个
ActiveSheet.UsedRange.Offset(,l).ClearContents
Application.ScreenUpdating=True
Application.DisplayAlerts=True
错误转到0
端接头
您是否尝试过输入断点并逐步完成代码?你知道你的For循环的哪个迭代是中断的吗?映射如下RespID、强项注释、改进注释、主题、标记
到RespID、主题、标记、强项注释、改进注释
代码在主题
上中断,即主题被剪切和粘贴,然后代码停止。最后两个在适当的位置,所以可能代码在试图剪切和粘贴到同一列的地方被破坏了。如果是这样的话,这是一种处理方法吗?