【问题标题】:Finding last column of data table and storing as a variable in excel macro vba查找数据表的最后一列并将其存储为excel宏vba中的变量
【发布时间】:2022-06-10 17:26:05
【问题描述】:

我目前在 excel 中有一些代码将整个表存储在一个变量中。它看起来像这样:

vLookLastRow = Worksheets("worksheet1").Cells(Rows.Count, 1).End(xlUp).Row

vLookLastCol = Worksheets("worksheet1").Cells(1,Columns.Count).End(xlToLeft).Column

Set vLookRange = Worksheets("worksheet1").Cells(1, 1).Resize(vLookLastRow, vLookLastCol)

这意味着当我返回 vLookRange.address 时,我得到“$A$1:$S$383”作为我的输出,即整个表格。

我想要一个输出给我最后一列 +1,所以如果我的表是从列 A 到 S 和行 1 到 383,我想要 $T$2:$T$383 的输出

感谢您的帮助!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    有几种方法可以做到这一点。 以下代码以单元格Cells(2, vLookLastCol+1) 开头 您想从第 2 行开始,所以Cells 的第一个参数是 2。
    由于vLookLastCol 具有表格最后一列的编号(S 列的编号为 19),vLookLastCol+1 是下一列的列编号 (T)。

    所以Cells(2, vLookLastCol+1) 是单元格T2。 现在我们使用Resize,但我们只调整行数。 vLookLastRow 是 383,但是我们从第 2 行开始,所以我们需要减去 1。

    With Worksheets("worksheet1")
        vLookLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        vLookLastCol = .Cells(1,Columns.Count).End(xlToLeft).Column
        Set vLookRange = .Cells(2, vLookLastCol+1).Resize(vLookLastRow-1, 1)
    End With
    

    另一种方法是使用带有 2 个参数的 Range-Function,定义开始和结束单元格:

    Set vLookRange = .Range(.Cells(2, vLookLastCol+1), .Cells(vLookLastRow, vLookLastCol+1))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 2020-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      相关资源
      最近更新 更多