【问题标题】:How to get range based on two variables in VBA如何根据VBA中的两个变量获取范围
【发布时间】:2021-07-01 20:54:17
【问题描述】:

我有一个 last_row 和 last_column 变量。

我通过执行以下操作获得这些。

last_column = .Cells(1, .Columns.Count).End(xlToLeft).Column

last_row = .Range("A" & .Rows.Count).End(xlUp).Row

我的问题是,我正在尝试根据这些变量创建一个选择,以便范围从E33 到最后一行和最后一列。但是,我收到一个错误。这是代码。

Range("E33:" & last_column & last_row).Select

非常感谢您的帮助!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您可以将 Cells() 与列号和行号一起使用

    set myRange = Range(Cells(33, "E"),Cells(last_row,last_column))
    

    除非您在工作表模块中使用此代码,否则请确保您限定了 Range 和 Cells 方法所寻址的工作表。

    【讨论】:

      【解决方案2】:

      Range("E33:" & last_column & last_row).Select

      您需要将last_column 转换为字符串,然后才能在上述代码中使用它。这是你想要达到的目标吗?

      Dim ColName As String
      Dim rng As Range
      
      ColName = Split(Cells(, last_column).Address, "$")(1)
      Set rng = ws.Range("E33:" & ColName & last_row)
      

      在上面的代码中ws是相关的工作表。

      注意

      1. 避免使用.Select。你可能想看看How to avoid using Select in Excel VBA
      2. Excel column number from column name

      【讨论】:

        猜你喜欢
        • 2018-11-11
        • 2018-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多