我试图在“Z”列之后插入一些列,使用Z列格式但是它会将列插入错误的部分(第二张图片):
这是我正在使用的代码:`
For i = 1 To Quantity - 1
Columns("Z:Z").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Next`
数量的价值由用户在文本框中给出。 谁能帮我? 谢谢
答案 0 :(得分:1)
使用以下内容:
For i = 1 To quantity - 1
Columns("Z:Z").Select
ActiveCell.EntireColumn.Offset(0, 1).Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Next
偏移将向右插入列 Excel通常将列插入选择的左侧 使用您的代码,您可以使用:
For i = 1 To Quantity - 1
Columns("AA:AA").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Next
答案 1 :(得分:1)
我尝试了你的代码,它完全符合你的要求
有可能某些其他代码正在运行,而不是此代码
调整窗口大小以便您可以看到工作表
然后按F8键
单步执行以下代码您的代码可以重写如下:
注意:您无需“选择”Z列以对其执行操作
Sub Macro1()
For i = 1 To 5
Columns("Z:Z").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Next
End Sub
' you can also do multiples of columns with one command
Sub Macro1()
Quantity = 3
' insert multiple columns
Range("z:z").Range(Columns(1), Columns(Quantity)).Select ' multi column range anchored at column "Z"
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
' or this way on one line without selecting
Range("z:z").Range(Columns(1), Columns(Quantity)).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
' or this way
Range("z:z").Range(Columns(1), Columns(Quantity)).Insert _
Shift:=xlToRight, _
CopyOrigin:=xlFormatFromLeftOrAbove
' or this way
With Range("z:z").Range(Columns(1), Columns(Quantity))
.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End With
End Sub
希望有所帮助