1)我从Sheet1复制内容(value=143)
2)我去Sheet2
3)我在range("B1")中插入一个新列
4) excel用143填充整个新列。我不想这样。我希望它是一个新的空列。
我知道我可以使用application.cutcopymode,但是当我使用F8对宏进行遍历时,它不起作用。
所以我需要一个关于如何处理它的建议。
我在论坛上看到一条评论,要求在复制之前先插入专栏,但我不喜欢打乱算法的顺序,所以我正在寻找一种更好的方法来做到这一点。
Sheet1:
123
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160 Sheet2:
wda awd
awd daw
adw daw
awd wda
daw wda
daw awd
wda afw
wda weg
awd weg
afw w
weg rq
weg qrq
w qefqw
rq e
qrq he
qefqw rgw
e rq
he 3qg
rgw q3
rq tq
3qg ga和宏:
Sub testing()
Application.CutCopyMode = False
Worksheets("Sheet1").Activate
Range("A4").Copy
Worksheets("Sheet2").Activate
Range("B1").EntireColumn.Insert
Range("b1").PasteSpecial Paste:=xlPasteValues
End Sub发布于 2018-10-11 11:51:01
当你这样做的时候:
Worksheets("Sheet1").Activate
Range("A4").CopyRange("A4")是指存储宏的工作表范围,不一定是Sheet1。
除非你真的想激活工作表,否则不要使用激活。改为执行以下操作:
Worksheets("Sheet1").Range("A4").Copy
With Worksheets("Sheet2").Range("B1")
.EntireColumn.Insert
.PasteSpecial Paste:=xlPasteValues
End With发布于 2018-10-11 14:01:23
使用Range对象的Value属性仅粘贴范围内容
Sub testing()
With Worksheets("Sheet2")
.Range("B1").EntireColumn.Insert
Intersect(.UsedRange, .Columns(2)).Value = Worksheets("Sheet1").Range("A4").Value
End With
End Sub请注意,我使用Intersect(.UsedRange, .Columns(2)).Value = ...将值粘贴限制到B列单元格,这些单元格的相邻列中填充了值
如果您确实需要填充整个列,那么只需使用.Columns(2).Value = ...
https://stackoverflow.com/questions/52751809
复制相似问题