Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Vba 粘贴到下一个空列_Vba_Excel - Fatal编程技术网

Vba 粘贴到下一个空列

Vba 粘贴到下一个空列,vba,excel,Vba,Excel,我已经有了粘贴到下一个空行的代码。它工作得很好,但现在我有一个新的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) 我尝试了这个方法,但我得到了编译错误方法或找不到数据成员,它突出显

我已经有了粘贴到下一个空行的代码。它工作得很好,但现在我有一个新的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)
我尝试了这个方法,但我得到了编译错误方法或找不到数据成员,它突出显示

.Cells
/

Range()
函数只接受单元格引用作为文本字符串,例如
Range(“A1”)

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

在这种情况下,您需要进行更改

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


要获得第1行的最后一列,其中包含任何内容,您应该执行以下操作

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)
让我们一次一个地完成更改:

单元格
采用两个参数。第一个表示行,第二个表示列。您希望从第一行的最后一列开始。所以第一个参数应该是1。第二个应该是工作表中的列数

注意通常最好指定您正在使用的工作表/工作簿。如果打开了多本书或选择了错误的工作表,这有助于防止出现错误

.End
将带您到达所在区域的边界。由于您位于第一行的最后一个单元格,因此您位于工作表的最右侧。因此,您必须移动到左侧,以查找其中包含值的最后一列。因此
.End(xlToLeft)

注意告诉我们参数必须是其中一个值

现在查看您的错误消息。有关导致错误的原因的更多信息,您可以经常参考。如果错误警报中给出了错误号,我建议搜索错误号

听起来您的错误是因为
Omega
不是正确的类型。VBA告诉您正在尝试访问名为
Cells
的成员,但它在对象中找不到该成员。我建议将
Omega
添加到手表中,并在出现错误时查看其成员。通过一点调试,您应该能够找到问题的根源


希望这能有所帮助:)

ω.单元格(1,Columns.Count).End(xltoLeft).列将是第1AFAIK行
单元格()中最后占用的列。
需要两个整数,不能使用字母字符。所以,您需要
shtAlpha.Cells(Rows.Count,3).End(xlUp)
。或者,如果确实要使用字母,请将其更改为
shtAlpha.Cells(Rows.Count,columns(“C”).Column)
“1”不是数字。它是一个文本字符串,包含与数字1的可视图像相对应的ASCII字符。1是一个数字。“1”是一个文本字符串。@BruceWayne-第二个参数可以是数字,也可以是列字母。@TimWilliams-啊,我没有意识到这一点。谢谢实际上,我相信可以使用字符串作为列的索引。
 intLast = shtAlpha.Cells(Rows.Count, 3).End(xlUp)
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)