与范围选择相关的以下VBA代码有什么问题?

时间:2018-03-28 06:41:49

标签: excel vba excel-vba

Set dr = Range(Selection, Cells(Rows.Count, Selection.Column).End(xlUp)(xlToRight))

基本上,我想选择跨越众多行和列的整个范围,其中数据被填充散布

它完美地适用于Xlup。但是当我添加Xltoright时,它并没有生效。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您试图正确选择当前选择,请考虑以下代码。

当您稍后尝试在表单1中进行选择时,我将假设您实际上意味着Worksheet("Sheet1")

如果是这种情况,您可以更安全地执行以下操作:

Sub hi()

    Dim dr As Range

    With ThisWorkbook.Worksheets("Sheet1")

        Set dr = .Range(Selection, .Cells(.Rows.Count, Selection.Column).End(xlUp).End(xlToRight))

    End With

    Debug.Print dr.Address

End Sub

注意:

请注意,没有符合条件的工作表的Cells / Range将使用 Activesheet 。请参阅此处的精彩讨论:

Is the . in .Range necessary when defined by .Cells?

剧情简介:

用"。"更快,避免错误的可能性1004,通常被认为是最佳实践。