首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有可变范围的自动填充/向下填充公式

具有可变范围的自动填充/向下填充公式
EN

Stack Overflow用户
提问于 2015-01-14 01:43:54
回答 2查看 1.7K关注 0票数 0

我是VBA的新手,在使用Autofill/Filldown函数时可能需要一些帮助。

我正在设置一个宏,以便将Vlookup公式合并到新工作表的第一个空列的单元格中。

这对第一个单元格很有效,但我在使用自动填充/填充向下函数将公式复制到电子表格中的所有单元格(或至少到第450行)时遇到了问题,因为如果不定义范围,我不知道如何做到这一点。我不能定义范围,因为它每次都会有所不同。

代码语言:javascript
代码运行次数:0
运行
复制
ActiveSheet.Range("IV1").End(xlToLeft).Offset(, 1).Formula = "=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"

请帮帮我!

EN

回答 2

Stack Overflow用户

发布于 2015-01-14 11:17:46

或者你可以直接这样做:

代码语言:javascript
代码运行次数:0
运行
复制
With ActiveSheet
    Dim FirstEmpCol As Long, LastRow As Long
    FirstEmpCol = .Cells(1, .Columns.Count).End(xlToLeft).Offset(0, 1).Column
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    .Range(.Cells(2, FirstEmpCol), .Cells(LastRow, FirstEmpCol).Formula = _
        "=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"    
End With
票数 1
EN

Stack Overflow用户

发布于 2015-01-14 01:55:21

这应该能做你想要的事情。它将找到第2行中的第一个空列,在那里插入公式,然后使用列B将其复制到最后一行,以检查最后使用的行(因为这是VLookUp正在查看的列:

代码语言:javascript
代码运行次数:0
运行
复制
Sub TesterIt()

  Dim LastRow As Long, StartCell As Range

  Set StartCell = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1)
  StartCell.Formula = "=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"
  LastRow = Range("B" & Rows.Count).End(xlUp).Row
  Range(StartCell, Cells(LastRow, StartCell.Column)).FillDown

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27928234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档