Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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 .结束(xlToRight)在一个范围内_Excel_Vba - Fatal编程技术网

Excel .结束(xlToRight)在一个范围内

Excel .结束(xlToRight)在一个范围内,excel,vba,Excel,Vba,我刚刚得到了一个快速的例子,想知道我是否可以以某种方式修改下面的代码片段,以包含.End(xlToRight),而不是定义L6(结果是一样的) 非常感谢您的帮助:) 编辑:更新了pdw TonyDallimore(见下面的回复) 托尼,上面的代码是我一直努力工作的总和。在with语句中,我希望复制第5行的内容,并将它们粘贴到第n行,这是由columnA中已经存在的列表定义的。然后,根据建议的最后一行将粘贴除顶行(r5)以外的所有行的值,以保持用户的透明度,同时最小化文件大小。 中间一位是剩余的“

我刚刚得到了一个快速的例子,想知道我是否可以以某种方式修改下面的代码片段,以包含
.End(xlToRight)
,而不是定义
L6
(结果是一样的)

非常感谢您的帮助:)

编辑:更新了pdw TonyDallimore(见下面的回复)

托尼,上面的代码是我一直努力工作的总和。在
with
语句中,我希望复制第5行的内容,并将它们粘贴到第n行,这是由columnA中已经存在的列表定义的。然后,根据建议的最后一行将粘贴除顶行(r5)以外的所有行的值,以保持用户的透明度,同时最小化文件大小。
中间一位是剩余的“正在进行的工作”,因为L5不一定是最重要的列。

这两个问题

.End(xxx)
与键盘上的
Ctrl+Arrow
相同,并在与当前单元格不同的第一个单元格处停止。因此,如果你从一个有值的单元格开始,它会在一个没有值的单元格停止,反之亦然

启动左上角并使用<代码> XLDOW/<代码>和 XLTORIGH>/代码>的麻烦是,它将在表格中间的一个空白单元格中停止。很好,如果你绝对不能在中间有一个空白单元格,但是<代码> XLUP 或<代码> XLTOLFFT从右下角更安全。< /P> 问题1

您的问题是
.End(xxx).Column
将返回12,而您不知道如何将其转换为字母“L”

是的,有很多选择。我想最简单的就是记住这一点

.Cells(6,Columns.Count).End(xlToLeft).Address

将返回“$L$6”

问题2

.Cells(1000,ColRange)
是否表示右下角的单元格


.Cells.SpecialCells(xlCellTypeLastCell)
可能是一个更简单的选择。

这两个问题

.End(xxx)
与键盘上的
Ctrl+Arrow
相同,并在与当前单元格不同的第一个单元格处停止。因此,如果你从一个有值的单元格开始,它会在一个没有值的单元格停止,反之亦然

启动左上角并使用<代码> XLDOW/<代码>和 XLTORIGH>/代码>的麻烦是,它将在表格中间的一个空白单元格中停止。很好,如果你绝对不能在中间有一个空白单元格,但是<代码> XLUP 或<代码> XLTOLFFT从右下角更安全。< /P> 问题1

您的问题是
.End(xxx).Column
将返回12,而您不知道如何将其转换为字母“L”

是的,有很多选择。我想最简单的就是记住这一点

.Cells(6,Columns.Count).End(xlToLeft).Address

将返回“$L$6”

问题2

.Cells(1000,ColRange)
是否表示右下角的单元格


.Cells.SpecialCells(xlCellTypeLastCell)
可能是一个更简单的选择。

谢谢Tony。问题(1)与我有关,我只是不知道如何在代码片段中包含xlToRight(我知道这是非常基本的,但我就是想不出来,并且浪费了太多时间尝试!)。您对第二个问题的建议一如既往地正确:)举个例子,我的第一次尝试是:范围(“B6”,范围(“B6”)。结束(xlToRight),范围(“B6”,范围(“B6”)。结束(xlToRight))。偏移量(LastRow-FirstRow,0))。CopyExcel提供了六种不同的方法来完成相同的任务。我们都使用对我们来说似乎最简单的方式,而您使用的是我几乎从未使用过的语法。在我看来,似乎您正试图将范围B6粘贴到其自身的右下角,以便用值替换公式。如果您是,我会选择这样的内容:
带表单(“xxx”)
.Range(“B6”),.Cells.SpecialCells(xlCellTypeLastCell)).Copy
.Range(“B6”).paste特殊xlPasteValues
结束是的这就是这段代码试图做的-我已经更新了上面的问题,使其更准确,并扩展了我希望做的事情。快到了,再次感谢您的帮助。在
.Range(Range(“A5”)中,LastCol.Copy
LastCol是一个字符串,所以您需要Range(LastCol)。我没有测试过这段代码,所以我不能保证这是唯一的错误。根据我之前的评论,我将LastCol设置为整数,并将其设置为
.Cells(5,.Columns.Count).End(xlToLeft).Column
然后我将使用
.Range(.Cells(5,“A”),.Cells(5,LastCol)).Copy
。因为我总是使用这种语法,所以我总是理解它。我希望我的代码能够尽快工作;我不在乎这是否让我看起来聪明。谢谢托尼。问题(1)与我有关,我只是不知道如何在代码片段中包含xlToRight(我知道这是非常基本的,但我就是想不出来,并且浪费了太多时间尝试!)。您对第二个问题的建议一如既往地正确:)举个例子,我的第一次尝试是:范围(“B6”,范围(“B6”)。结束(xlToRight),范围(“B6”,范围(“B6”)。结束(xlToRight))。偏移量(LastRow-FirstRow,0))。CopyExcel提供了六种不同的方法来完成相同的任务。我们都使用对我们来说似乎最简单的方式,而您使用的是我几乎从未使用过的语法。在我看来,似乎您正试图将范围B6粘贴到其自身的右下角,以便用值替换公式。如果您是,我会选择这样的内容:
带表单(“xxx”)
.Range(“B6”),.Cells.SpecialCells(xlCellTypeLastCell)).Copy
.Range(“B6”).paste特殊xlPasteValues
结束是的这就是这段代码试图做的-我已经更新了上面的问题,使其更准确,并扩展了我希望做的事情。快到了,再次感谢您的帮助。在
.Range(Range(“A5”)中,LastCol.Copy
LastCol是一个字符串,所以您需要Range(LastCol)。我没有测试过这段代码,所以我不知道
Sub Test()
Dim LastCol As String

With Worksheets("Sheet1")
    LastCol = .Cells(5, .Columns.Count).End(xlToLeft).Address
    .Range(Range("A5"), LastCol).Copy    

    .Range("B5:L5", Range("B5:L5").Offset(LastRow - FirstRow, 0)).PasteSpecial xlPasteFormulas

    .Range("B6", .Cells.SpecialCells(xlCellTypeLastCell)).Copy
    .Range("B6").PasteSpecial xlPasteValues
End With
End Sub