在excel VBA中获取范围函数

阿瓦克斯

我需要编写一个函数来实际从一些不同的工作表中获取动态范围,而不是在每个宏中重复以下代码:

LastRow = Sheetname.Cells(Rows.Count, 1).End(xlUp).Row

Set UserRange = Sheetname.Cells.Range("A2:A" & LastRow)

我喜欢有如下功能:

Function GetRange(ByVal sht As Worksheet, rng As Range)

    'do things ...

End Function

但我不知道如何将范围传递给函数。

哈尔

如果要使用动态结束行确定返回 Range 对象,除了使用最后一行方法之外,您还需要指定函数 return 为 Range 对象并传递要使用的起始行变量和列号。

Option Explicit
Public Sub test()
    Dim ws As Worksheet, rng As Range
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Set rng = GetRange(ws, 1, 1)
    Debug.Print rng.Address
End Sub

Public Function GetRange(ByVal ws As Worksheet, ByVal startRow As Long, ByVal columnNumber As Long) As Range
    With ws
        Set GetRange = Range(.Cells(startRow, columnNumber), .Cells(.Cells(.Rows.Count, columnNumber).End(xlUp).Row, columnNumber))
    End With
End Function

您可能想要一些错误处理/测试,确定的结束行不小于startRow例如lastRowas 3 and startRow= 4

Option Explicit
Public Sub test()
    Dim ws As Worksheet, rng As Range
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Set rng = GetRange(ws, 4, 1)

    If Not rng Is Nothing Then Debug.Print rng.Address
End Sub

Public Function GetRange(ByVal ws As Worksheet, ByVal startRow As Long, ByVal columnNumber As Long) As Range
    Dim lastRow As Long
    With ws
        lastRow = .Cells(.Rows.Count, columnNumber).End(xlUp).Row
        If Not lastRow < startRow Then
            Set GetRange = .Range(.Cells(startRow, columnNumber), .Cells(lastRow, columnNumber))
        End If
    End With
End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA中Excel Solver函数的用户定义范围

来自分类Dev

VBA中的减法范围(Excel)

来自分类Dev

范围,Excel VBA中的空行

来自分类Dev

Excel VBA中的范围方法

来自分类Dev

Excel VBA 中的动态范围

来自分类Dev

用户定义的函数,可以在Excel VBA中接受连续范围和不连续范围

来自分类Dev

Excel VBA使用从函数返回的范围

来自分类Dev

Excel VBA-获取图表数据范围

来自分类Dev

Excel VBA:获取与范围关联的工作簿

来自分类Dev

如何在VBA Excel中从单元格中的公式获取参数范围?

来自分类Dev

在VBA函数中传递Excel范围,作为数组处理并返回结果

来自分类Dev

Excel VBA中的语法:如何在“ = IF”函数中将表的列引用为范围

来自分类Dev

使用Excel VBA复制列中的范围

来自分类Dev

VBA Excel中的单元格范围

来自分类Dev

在VBA Excel中复制粘贴范围

来自分类Dev

删除Excel VBA中的列范围

来自分类Dev

试图找出VBA Excel中的变量范围?

来自分类Dev

如何在VBA中声明Excel范围?

来自分类Dev

从传递的列/行/范围VBA Excel中获取一个单元格

来自分类Dev

从传递的列/行/范围VBA Excel中获取一个单元格

来自分类Dev

如何在Excel VBA中获取单元格的位置范围?

来自分类Dev

Excel VBA排序范围

来自分类Dev

VBA EXCEL范围语法

来自分类Dev

VBA EXCEL范围语法

来自分类Dev

Excel VBA范围选择

来自分类Dev

Excel VBA:在用户定义的函数内命名范围

来自分类Dev

Excel VBA:使用范围作为变量的评估匹配函数

来自分类Dev

Excel VBA-获取按钮接口对象的相应范围

来自分类Dev

Excel VBA-获取按钮接口对象的相应范围