粘贴到下一个空列

我已经有了这个代码粘贴到下一个空行。 它完美的工作,但现在我有一个新的VBA项目,我想做同样的事情,但列而不是行

当前代码:

intLast = shtAlpha.Cells(Rows.Count, "C").End(xlUp) intNext = intLast + 5 - (intLast + 1) Mod 5 Set rngDest = shtAlpha.Cells(intNext, "C").Resize(5, 3) 

我试过这个,但我得到了编译错误的方法或数据成员未find ,它突出显示

 .Cells 

/

 intLast = Omega.Cells(Columns.Count, "1").End(xlRight).Column intNext = intLast + 5 - (intLast + 5) Mod 5 Set rngDest = Omega.Cells(intNext, "A").Resize(30000, 3) 

为了得到第一行中的最后一列,你应该做的

 intLast = Omega.Cells(1,Omega.Columns.Count).End(xlToLeft).Column intNext = intLast + 5 - (intLast + 5) Mod 5 Set rngDest = Omega.Cells(1,intNext).Resize(30000, 3) 

让我们一次一个地去看看这些变化:

Cells有两个参数。 第一个表示第二个表示该列的行。 你想从第一行最后一列开始。 所以第一个参数应该是1.第二个应该是你的工作表中的列数。

请注意 ,指定您正在使用哪个工作表/工作簿通常是一种很好的做法。 这有助于防止出现多个书籍打开或错误的工作表被选中的错误。

.End会把你带到你所在地区的边界。由于你在第一行的最后一个单元,所以你在这张表的最右边 。 所以你可以在左边find最后一列的值。 因此.End(xlToLeft)

注意 文档告诉我们该参数必须是这些值之一。

现在为您的错误信息。 您经常可以参考这个方便的VBA错误列表,以获取更多关于可能导致错误的信息。 如果在错误警报中给出错误号码,我build议您search错误号码。

这听起来像你的错误是由于Omega是不正确的types。 VBA告诉你,你正试图访问一个名为Cells的成员,但是在对象中找不到它。 我build议在手表中添加Omega ,并在错误发生时查看其成员。 稍微debugging一下,你应该能够find问题的根源!

希望这有助于:)

Range()函数只接受单元格引用作为文本string,例如Range("A1")

Cells()函数只接受数字行/列引用,例如Cells(1, 1)

在这种情况下,你需要改变

  intLast = shtAlpha.Cells(Rows.Count, "C").End(xlUp) 

  intLast = shtAlpha.Cells(Rows.Count, 3).End(xlUp)