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/<代码>和
.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/<代码>和
.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