我是VBA的新手,我正在尝试将其用于循环,但我认为我的“To”计数器是错误的。我希望它执行指定的操作,直到没有剩下的列可以剪切。
发生的事情是,我有一组水平数据(列“T”到“EV”)我正在切割并在列S上垂直粘贴。它可以工作,但我仍然得到这个错误:
我明白了:
运行时错误'1004':
此选择无效。 有几个可能的原因:
代码:
Dim x As Integer
For x = 0 To ActiveCell.CurrentRegion.Columns.Count
ActiveCell.Select
ActiveCell.Offset(0, x).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("S3000").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Range("T11").Select
Next x
答案 0 :(得分:1)
未经测试,直接写在这里,但它应该有用......
dim c as range
for each c in range("t1").currentregion
range("s3000").end(xlup).offset(1,0)= c.value
c.clear
next c
改变活动细胞是没有意义的。它只会减慢您的代码速度。
答案 1 :(得分:1)
您可以使用内置的TRANSPOSE工作表功能来实现这一目标 - 请参阅here
如果您想使用VBA实现这一目标,那么正如Tiago Cardoso指出的那样,使用剪切和粘贴通常不是最佳解决方案。请考虑使用Cells
对象的Worksheet
方法,并跟踪您正在使用哪一列和哪一行。