Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VB代码:代码仅适用于第一行_Excel_Vba - Fatal编程技术网

Excel VB代码:代码仅适用于第一行

Excel VB代码:代码仅适用于第一行,excel,vba,Excel,Vba,我有以下代码: ' Paste last value Range(Cells(LastRowP + 1, 10), Cells(LastRowP + 1, 10)).Select Selection.Cut Range(Cells(LastRowP + 1, 9), Cells(LastRowP + 1, 9)).Select ActiveSheet.Paste 这段代码应该从第10列剪切内容并粘贴到第9列。不幸的是,这只适用于第一个条目(例如第2行),对于其他

我有以下代码:

' Paste last value
    Range(Cells(LastRowP + 1, 10), Cells(LastRowP + 1, 10)).Select
    Selection.Cut
    Range(Cells(LastRowP + 1, 9), Cells(LastRowP + 1, 9)).Select
    ActiveSheet.Paste
这段代码应该从第10列剪切内容并粘贴到第9列。不幸的是,这只适用于第一个条目(例如第2行),对于其他行,它不起作用。 你能帮忙吗

谢谢大家!

这应该有效:

Sub CutColumn()

   LastRow = Cells(Rows.Count, "J").End(xlUp).Row
   Range("J1:J" & LastRow).Cut Destination:=Range("I1:I" & LastRow)

End Sub

您没有选择正确的重新设置,也没有提到LastRowP的值。但是,如果设置FirstRowP和LastRowP,则它们在以下代码中的值将起作用

Range(Cells(FirstRowP + 1, 10), Cells(LastRowP + 1, 10)).Select
Selection.Cut
Range(Cells(FirstRowP + 1, 9), Cells(LastRowP + 1, 9)).Select
ActiveSheet.Paste

我认为现有的答案应该涵盖你,但我想补充一些与你的问题相关的有用信息


首先,语法
范围(单元格(R1,C1),单元格(R2,C2))
指的是平方范围,从行号
R1
和列号
C1
的交点定义的单元格开始,直到行号
R2
和列号
C2
的交点定义的单元格(假设
R1 LastRowP=Range(“A65536”).End(xlUp)。Row'Range(“A65536”).End(xlUp)。Offset(1,0)。选择
Range
中的第一个条目指示范围的开始。在您的情况下,范围的开始和结束都是同一个单元格(即最后一个单元格+1).剪切粘贴不是一个好方法solution@loannis:您的第一条评论实际上回答了这个问题;)@SiddharthRout确实回答了,但OP和该线程的未来访问者只需了解很少的内容。。而且它没有说明在这种情况下,
Select
是一种不好的做法(因此它是一条评论:)。问题是,我在第一行有一个标题,买了剪切粘贴,我从第一行剪切了标题,还有几本运行这个宏的工作簿。在完成复制第一个工作簿后,它看起来很棒,但是当它移到第二个和第三个时,我遇到了一个问题,即此代码从上一个表单中剪切空白单元格并将其粘贴到上一个数据上。如果不想剪切标题,请将
J1和I1
更改为
J2和I2
。你说的第二个和第三个是什么意思?
Range(Cells(FirstRowP + 1, 9), Cells(LastRowP + 1, 9))