可以将此VBA语句写成一行吗?

时间:2019-06-29 15:10:40

标签: excel vba

知道Excel表中的行后,如何在一个语句中引用该行的范围,例如在表的cell(3,2)到表的cell(3,6)中呢?

查找表中的行:

lStoreTableRow = Application.Match(Data.Cells(lDataRow, 1), Settings.Range("tblSite[Site]"), 0)

当前要返回3个单元格,我需要3行:

BBT.Cells(lBBTRow, 11) = Application.Index(Settings.Range("tblSite[Store]"), lStoreTableRow)    'Storename
BBT.Cells(lBBTRow, 12) = Application.Index(Settings.Range("tblSite[Brand]"), lStoreTableRow)  'Brand
BBT.Cells(lBBTRow, 13) = Application.Index(Settings.Range("tblSite[Type]"), lStoreTableRow)    'Type`

我如何引用表的同一行(而不是表的整个行)中的所有三个单元格?

BBT.Range(BBT.Cells(lBBTRow, 11), BBT.Cells(lBBTRow, 13)) = ???

1 个答案:

答案 0 :(得分:1)

我还建议:

  • 通过Range.Cells()获取第一个源单元格
  • Resize使其宽度为3列
  • 分配整个Range.Value(需要源和目标的范围大小相同)
BBT.Cells(lBBTRow, 11).Resize(1, 3).Value = _
    Settings.Range("tblSite[Store]").Cells(lStoreTableRow).Resize(1, 3).Value