【问题标题】:VBA Fill first row under headerVBA填充标题下的第一行
【发布时间】:2017-08-08 15:23:18
【问题描述】:

很简单的问题让我很沮丧。我的工作表中有这个过滤列,其中类型是标题名称:

   AO
1  Type
55 blank
62 blank
63 blank
65 blank

我正在尝试用文本“A”填充此过滤列中键入之后的所有内容

到目前为止我的尝试:

LastRow = Range("AO" & Rows.Count).End(xlUp).Row
Range("AO:AO" & LastRow).Offset(1).Formula = "A"

但我似乎无法让这种变化发挥作用。任何帮助表示赞赏

【问题讨论】:

  • 请注意,您的代码隐含地引用了ActiveSheet。这导致其他问题。学习使用Worksheet 对象正确限定RangeCellsRowsColumns 调用。您可以使用Rubberduck 来帮助您定位所有隐式ActiveSheet / ActiveWorkbook 引用的实例。

标签: vba excel


【解决方案1】:

试试看

Sheets("Sheet1").Range("AO2:AO" & LastRow).SpecialCells(xlCellTypeVisible).Value = "A"

在您编辑之后,我可能会将LastRow 更改为:

LastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row

因为如果您在过滤器之后使用AO ,正如您所展示的,您可能会有大量空白。那么LastRow 可能设置不正确。使用 A 列(我假设它的数据最多?)可以帮助防止任何错误。

【讨论】:

  • 我认为 OP 只希望可见单元格拥有该数据。
  • @ScottCraner 正确,我会将其添加到我的帖子中以澄清
  • @ScottCraner - 啊,是的,我想补充一下。已编辑。
  • @BruceWayne 我收到“object_Global”方法“范围”失败的错误。对于如何解决这个问题,有任何的建议吗?谷歌搜索建议我需要参考工作表?但是如果我要删除 AO2 中的 2,它仍然会填满列,这让我感到困惑
  • @codeninja - 你能在你的OP中编辑你如何声明和定义LastRow吗?我假设它是一个整数。此外,是的,您应该将工作表名称添加到开头,以便清楚。 Sheets("Sheet1").Range("AO2:AO" & LastRow)...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多